<!DOCTYPE html>
<!-- [if IE 8]><html class="no - js lt - ie9" lang="en" > <![endif] -->
<!-- [if gt IE 8]><! --> < html class = "no-js" lang = "en" > <!-- <![endif] -->
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< title > Docker — Arthas 3.4.3 documentation< / title >
< link rel = "shortcut icon" href = "_static/favicon.ico" / >
< script type = "text/javascript" src = "_static/js/modernizr.min.js" > < / script >
< script type = "text/javascript" id = "documentation_options" data-url_root = "./" src = "_static/documentation_options.js" > < / script >
< script type = "text/javascript" src = "_static/jquery.js" > < / script >
< script type = "text/javascript" src = "_static/underscore.js" > < / script >
< script type = "text/javascript" src = "_static/doctools.js" > < / script >
< script type = "text/javascript" src = "_static/language_data.js" > < / script >
< script type = "text/javascript" src = "_static/js/theme.js" > < / script >
< link rel = "stylesheet" href = "_static/css/theme.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/pygments.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/overrides.css" type = "text/css" / >
< link rel = "index" title = "Index" href = "genindex.html" / >
< link rel = "search" title = "Search" href = "search.html" / >
< link rel = "next" title = "Arthas Spring Boot Starter" href = "spring-boot-starter.html" / >
< link rel = "prev" title = "Http API" href = "http-api.html" / >
< script >
if (window.location.href.startsWith("https://alibaba.github.io/arthas/")) {
window.location.href = "https://arthas.aliyun.com/doc/" + window.location.href.substr("https://alibaba.github.io/arthas/".length);
}
< / script >
< script src = "_static/center_page.js" > < / script >
< link rel = "stylesheet" href = "https://g.alicdn.com/code/lib/highlight.js/9.13.1/styles/github.min.css" >
< / head >
< body class = "wy-body-for-nav" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-scroll" >
< div class = "wy-side-nav-search" >
< a href = "index.html" class = "icon icon-home" > Arthas
< / a >
< div class = "version" >
3.4.3
< / div >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "search.html" method = "get" >
< input type = "text" name = "q" placeholder = "Search docs" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< / div >
< / div >
< div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "main navigation" >
< ul class = "current" >
< li class = "toctree-l1" > < a class = "reference external" href = "https://arthas.aliyun.com/" > Home< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en" > Online tutorials(Recommend)< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "install-detail.html" > Installation< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "download.html" > Download< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "quick-start.html" > Quick start< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "advanced-use.html" > Advanced usage< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "commands.html" > Commands< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "web-console.html" > WebConsole< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "http-api.html" > Http API< / a > < / li >
< li class = "toctree-l1 current" > < a class = "current reference internal" href = "#" > Docker< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "#use-jdk-in-docker" > Use JDK in Docker< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "#use-public-jdk-image" > Use public JDK image< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#install-via-package-management-software" > Install via package management software< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#quick-start-with-docker" > Quick start with Docker< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#diagnose-the-java-process-in-docker" > Diagnose the Java process in Docker< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#diagnose-the-java-process-in-the-container-in-k8s" > Diagnose the Java process in the container in k8s< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "#install-arthas-into-the-base-docker-image" > Install Arthas into the base Docker image< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "spring-boot-starter.html" > Arthas Spring Boot Starter< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "idea-plugin.html" > IDEA Plugin< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas/issues?q=label%3Auser-case" > User cases< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered" > Questions and answers< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas" > Fork me at GitHub< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md#" > Compile and debug/CONTRIBUTING< / a > < / li >
< li class = "toctree-l1" > < a class = "reference external" href = "https://github.com/alibaba/arthas/releases" > Release Notes< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "contact-us.html" > Contact us< / a > < / li >
< / ul >
< / div >
< / div >
< / nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" >
< nav class = "wy-nav-top" aria-label = "top navigation" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" > < / i >
< a href = "index.html" > Arthas< / a >
< / nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
< div role = "navigation" aria-label = "breadcrumbs navigation" >
< ul class = "wy-breadcrumbs" >
< li > < a href = "index.html" > Docs< / a > » < / li >
< li > Docker< / li >
< li class = "wy-breadcrumbs-aside" >
< a href = "https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/en/docker.md" class = "fa fa-github" > Edit on GitHub< / a >
< / li >
< / ul >
< hr / >
< / div >
< div role = "main" class = "document" itemscope = "itemscope" itemtype = "http://schema.org/Article" >
< div itemprop = "articleBody" >
< div class = "section" id = "docker" >
< h1 > Docker< a class = "headerlink" href = "#docker" title = "Permalink to this headline" > ¶< / a > < / h1 >
< div class = "section" id = "use-jdk-in-docker" >
< h2 > Use JDK in Docker< a class = "headerlink" href = "#use-jdk-in-docker" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > Many times, the problem that arthas can’ t work with the application in docker is because the docker does not install JDK, but installs JRE. If only JRE is installed, many JAVA command line tools and class libraries will be missing, and Arthas will not work properly. Here are two common ways to use JDK in Docker.< / p >
< div class = "section" id = "use-public-jdk-image" >
< h3 > Use public JDK image< a class = "headerlink" href = "#use-public-jdk-image" title = "Permalink to this headline" > ¶< / a > < / h3 >
< ul class = "simple" >
< li > < p > https://hub.docker.com/_/openjdk/< / p > < / li >
< / ul >
< p > such as:< / p >
< div class = "highlight-default notranslate" > < pre class = "literal-block" > FROM openjdk:8-jdk< / pre >
< / div >
< p > or:< / p >
< div class = "highlight-default notranslate" > < pre class = "literal-block" > FROM openjdk:8-jdk-alpine< / pre >
< / div >
< / div >
< div class = "section" id = "install-via-package-management-software" >
< h3 > Install via package management software< a class = "headerlink" href = "#install-via-package-management-software" title = "Permalink to this headline" > ¶< / a > < / h3 >
< p > such as:< / p >
< div class = "highlight-bash notranslate" > < div class = "highlight hljs" > < pre class = "bash" > # Install OpenJDK-8
RUN apt-get update & & \
apt-get install -y openjdk-8-jdk & & \
apt-get install -y ant & & \
apt-get clean;
# Fix certificate issues
RUN apt-get update & & \
apt-get install ca-certificates-java & & \
apt-get clean & & \
update-ca-certificates -f;
# Setup JAVA_HOME - useful for docker commandline
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME< / pre > < / div >
< / div >
< p > or:< / p >
< div class = "highlight-bash notranslate" > < div class = "highlight hljs" > < pre class = "bash" > RUN yum install -y \
java-1.8.0-openjdk \
java-1.8.0-openjdk-devel
ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk/
RUN export JAVA_HOME< / pre > < / div >
< / div >
< / div >
< / div >
< div class = "section" id = "quick-start-with-docker" >
< h2 > Quick start with Docker< a class = "headerlink" href = "#quick-start-with-docker" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ol >
< li > < p > Delete the existing < code class = "docutils literal notranslate" > < span class = "pre" > arthas-demo< / span > < / code > docker container (not necessary)< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight hljs" > < pre class = "sh" > $ docker stop arthas-demo || true & & docker rm arthas-demo || true< / pre > < / div >
< / div >
< / li >
< li > < p > Start < code class = "docutils literal notranslate" > < span class = "pre" > arthas-demo< / span > < / code > < / p >
< div class = "highlight-sh notranslate" > < div class = "highlight hljs" > < pre class = "sh" > $ docker run --name arthas-demo -it hengyunabc/arthas:latest /bin/sh -c " java -jar /opt/arthas/arthas-demo.jar" < / pre > < / div >
< / div >
< / li >
< li > < p > Start < code class = "docutils literal notranslate" > < span class = "pre" > arthas-boot< / span > < / code > for diagnosis< / p >
< div class = "highlight-sh notranslate" > < div class = "highlight hljs" > < pre class = "sh" > $ docker exec -it arthas-demo /bin/sh -c " java -jar /opt/arthas/arthas-boot.jar"
* [1]: 9 jar
[INFO] arthas home: /opt/arthas
[INFO] Try to attach process 9
[INFO] Attach process 9 success.
[INFO] arthas-client connect 127.0.0.1 3658
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O \ | .--. ' ' --. .--' | ' --' | / O \ ' .-'
| .-. || ' --' .' | | | .--. || .-. |`. `-.
| | | || |\ \ | | | | | || | | |.-' |
`--' `--' `--' ' --' `--' `--' `--' `--' `--' `-----'
wiki: https://arthas.aliyun.com/doc
version: 3.0.5
pid: 9
time: 2018-12-18 11:30:36< / pre > < / div >
< / div >
< / li >
< / ol >
< / div >
< div class = "section" id = "diagnose-the-java-process-in-docker" >
< h2 > Diagnose the Java process in Docker< a class = "headerlink" href = "#diagnose-the-java-process-in-docker" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-sh notranslate" > < div class = "highlight hljs" > < pre class = "sh" > docker exec -it ${containerId} /bin/bash -c " wget https://arthas.aliyun.com/arthas-boot.jar & & java -jar arthas-boot.jar" < / pre > < / div >
< / div >
< / div >
< div class = "section" id = "diagnose-the-java-process-in-the-container-in-k8s" >
< h2 > Diagnose the Java process in the container in k8s< a class = "headerlink" href = "#diagnose-the-java-process-in-the-container-in-k8s" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-sh notranslate" > < div class = "highlight hljs" > < pre class = "sh" > kubectl exec -it ${pod} --container ${containerId} -- /bin/bash -c " wget https://arthas.aliyun.com/arthas-boot.jar & & java -jar arthas-boot.jar" < / pre > < / div >
< / div >
< / div >
< div class = "section" id = "install-arthas-into-the-base-docker-image" >
< h2 > Install Arthas into the base Docker image< a class = "headerlink" href = "#install-arthas-into-the-base-docker-image" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > It’ s easy to install Arthas into your Docker image.< / p >
< div class = "highlight-default notranslate" > < pre class = "literal-block" > FROM openjdk:8-jdk-alpine
# copy arthas
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas< / pre >
< / div >
< p > If you want to specify a version, you can view all the tags:< / p >
< p > < a class = "reference external" href = "https://hub.docker.com/r/hengyunabc/arthas/tags" > https://hub.docker.com/r/hengyunabc/arthas/tags< / a > < / p >
< / div >
< / div >
< / div >
< / div >
< footer >
< div class = "rst-footer-buttons" role = "navigation" aria-label = "footer navigation" >
< a href = "spring-boot-starter.html" class = "btn btn-neutral float-right" title = "Arthas Spring Boot Starter" accesskey = "n" rel = "next" > Next < span class = "fa fa-arrow-circle-right" > < / span > < / a >
< a href = "http-api.html" class = "btn btn-neutral float-left" title = "Http API" accesskey = "p" rel = "prev" > < span class = "fa fa-arrow-circle-left" > < / span > Previous< / a >
< / div >
< hr / >
< div role = "contentinfo" >
< p >
© Copyright 2018-2020, Alibaba Middleware Group, and contributors
< / p >
< / div >
Built with < a href = "http://sphinx-doc.org/" > Sphinx< / a > using a < a href = "https://github.com/rtfd/sphinx_rtd_theme" > theme< / a > provided by < a href = "https://readthedocs.org" > Read the Docs< / a > .
< / footer >
< / div >
< / div >
< / section >
< / div >
< script type = "text/javascript" >
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
< / script >
< div class = "github-fork-ribbon-wrapper right" >
< div class = "github-fork-ribbon" >
< a href = "https://github.com/alibaba/arthas" target = "_blank" > Fork me at GitHub< / a >
< / div >
< / div >
< script type = "text/javascript" src = "_static/add_badges.js" > < / script >
< script src = "https://g.alicdn.com/code/lib/highlight.js/9.13.1/highlight.min.js" > < / script >
< script src = "https://g.alicdn.com/code/lib/highlightjs-line-numbers.js/2.5.0/highlightjs-line-numbers.min.js" > < / script >
< script >
document.querySelectorAll('div.hljs > pre').forEach(function(block) {
hljs.highlightBlock(block);
hljs.lineNumbersBlock(block);
});
< / script >
< script type = "text/javascript" > document . write ( unescape ( "%3Cspan style='display:none;' id='cnzz_stat_icon_1279151497'%3E%3C/span%3E%3Cscript src='https://s4.cnzz.com/z_stat.php%3Fid%3D1279151497' type='text/javascript'%3E%3C/script%3E" ) ) ; < / script >
< script >
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
< / script >
< / body >
< / html >