1. 首页
  2. IT资讯

Docker-Compose基础与实战,看这一篇就够了

“u003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002F5dcb8c66ebf048ca893f611dbb4a5b2b” img_width=”649″ img_height=”338″ alt=”Docker-Compose基础与实战,看这一篇就够了” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Ch1u003Eu003Cstrongu003Ewhat & whyu003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003ECompose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。u003Cbru002Fu003ECompose有2个重要的概念u003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003Eu003Cstrongu003E项目(Project)u003Cu002Fstrongu003E:由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。u003Cu002Fliu003Eu003Cliu003Eu003Cstrongu003E服务(Service)u003Cu002Fstrongu003E:一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。u003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Edocker compose 安装与卸载u003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003E安装u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cp class=””u003Eu003Cstrongu003E二进制包在线安装u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpreu003Ecurl -L https:u002Fu002Fgithub.comu002Fdockeru002Fcomposeu002Freleasesu002Fdownloadu002F1.25.0u002Fdocker-compose-`uname -s`-`uname -m` -o u002Fusru002Flocalu002Fbinu002Fdocker-compose u003Cbru003Eu003Cbru003Esudo chmod +x u002Fusru002Flocalu002Fbinu002Fdocker-composeu003Cu002Fpreu003Eu003Cpu003E这个方法现在基本行不通,下载太慢了,不推荐使用。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E二进制包离线安装u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E从https:u002Fu002Fgithub.comu002Fdockeru002Fcomposeu002Freleasesu002Fdownloadu002F1.25.0u002Fdocker-compose-Linux-x86_64下载对应的安装包,比如我下载了Linux-x86_64的。u003Cu002Fpu003Eu003Cpu003E将下载好的安装包剪切到u002Fusru002Flocalu002Fbinu002Fdocker-compose目录下u003Cbru002Fu003Emv u002Fappu002Fdownloadu002Fdocker-compose-Linux-x86_64 u002Fusru002Flocalu002Fbinu002Fdocker-composeu003Cu002Fpu003Eu003Cp class=””u003Eu003Cstrongu003E添加执行权限u003Cu002Fstrongu003Eu003Cbru002Fu003Esudo chmod +x u002Fusru002Flocalu002Fbinu002Fdocker-composeu003Cu002Fpu003Eu003Cp class=””u003Eu003Cstrongu003Epip安装u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003E先安装好pip工具u003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpreu003E#安装依赖 u003Cbru003Eyum -y install epel-release u003Cbru003E#安装PIP u003Cbru003Eyum -y install python-pip u003Cbru003E#升级PIP u003Cbru003Epip install –upgrade pipu003Cu002Fpreu003Eu003Cul class=””u003Eu003Cliu003E验证pip 版本u003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpreu003E[root@tymonitor bin]# pip –versionu003Cbru003Epip 8.1.2 from u002Fusru002Flibu002Fpython2.7u002Fsite-packages (python 2.7)u003Cu002Fpreu003Eu003Cul class=””u003Eu003Cliu003E安装docker composeu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Epip install -U docker-compose==1.25.0u003Cbru002Fu003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002F2dd3cc7d814e4b58b8195db369d1069d” img_width=”800″ img_height=”82″ alt=”Docker-Compose基础与实战,看这一篇就够了” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cul class=””u003Eu003Cliu003E验证docker compose版本u003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpreu003E[root@tymonitor bin]# docker-compose –versionu003Cbru003Edocker-compose version 1.25.0, build b42d419u003Cu002Fpreu003Eu003Cpu003Eu003Cstrongu003E安装补全插件u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Ecurl -L https:u002Fu002Fraw.githubusercontent.comu002Fdockeru002Fcomposeu002F1.25.0u002Fcontribu002Fcompletionu002Fbashu002Fdocker-compose > u002Fetcu002Fbash_completion.du002Fdocker-composeu003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003E卸载u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003Eu003Cstrongu003E二进制卸载u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Erm u002Fusru002Flocalu002Fbinu002Fdocker-composeu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003Epip卸载u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Epip uninstall docker-composeu003Cu002Fpu003Eu003Cpu003Edocker compose 重要命令u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E命令选项u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003E-f, –file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定。u003Cu002Fliu003Eu003Cliu003E-p, –project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。u003Cu002Fliu003Eu003Cliu003E–x-networking 使用 Docker 的可拔插网络后端特性u003Cu002Fliu003Eu003Cliu003E–x-network-driver DRIVER 指定网络后端的驱动,默认为 bridgeu003Cu002Fliu003Eu003Cliu003E–verbose 输出更多调试信息。u003Cu002Fliu003Eu003Cliu003E-v, –version 打印版本并退出。u003Cu002Fliu003Eu003Cu002Fulu003Eu003Ch1u003Eu003Cstrongu003E常用&重要命令u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cul class=””u003Eu003Cliu003Econfigu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E验证 Compose 文件格式是否正确,若正确则显示配置,若格式错误显示错误原因。u003Cbru002Fu003E如:docker-compose -f skywalking.yml configu003Cbru002Fu003E此命令不会执行真正的操作,而是显示 docker-compose 程序解析到的配置文件内容:u003Cbru002Fu003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F993b96d878a24b2fbe4ae333ca608c07″ img_width=”798″ img_height=”311″ alt=”Docker-Compose基础与实战,看这一篇就够了” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cul class=””u003Eu003Cliu003Eimagesu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E列出 Compose 文件中包含的镜像。如docker-compose -f skywalking.yml imagesu003Cbru002Fu003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F4229f9c2cd3a4f479172294b6323eee3″ img_width=”635″ img_height=”107″ alt=”Docker-Compose基础与实战,看这一篇就够了” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cul class=””u003Eu003Cliu003Epsu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E列出项目中目前的所有容器。如docker-compose -f skywalking.yml psu003Cbru002Fu003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F54e091d775f74684a3ecf1f5798c2994″ img_width=”800″ img_height=”98″ alt=”Docker-Compose基础与实战,看这一篇就够了” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cul class=””u003Eu003Cliu003Ebuildu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E构建(重新构建)项目中的服务容器。如:docker-compose -f skywalking.yml build,一般搭配自定义镜像,比如编写的Dockfile,功能类似于docker build .u003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003Eupu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E该命令十分强大(重点掌握),它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。如docker-compose -f skywalking.yml up。默认情况,docker-compose up 启动的容器都在前台,控制台将会同时打印所有容器的输出信息,可以很方便进行调试。u003Cbru002Fu003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002Fda78f98dd2cd48778e27812c731a0e9c” img_width=”800″ img_height=”269″ alt=”Docker-Compose基础与实战,看这一篇就够了” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eu003Cbru002Fu003E如果使用docker-compose up -d将会在后台启动并运行所有的容器。一般推荐生产环境下使用该选项。u003Cbru002Fu003E默认情况,如果服务容器已经存在,docker-compose up 将会尝试停止容器,然后重新创建(保持使用 volumes-from 挂载的卷),以保证新启动的服务匹配 docker-compose.yml 文件的最新内容。如果用户不希望容器被停止并重新创建,可以使用 docker-compose up –no-recreate。这样将只会启动处于停止状态的容器,而忽略已经运行的服务。如果用户只想重新部署某个服务,可以使用 docker-compose up –no-deps -d <SERVICE_NAME> 来重新创建服务并后台停止旧服务,启动新服务,并不会影响到其所依赖的服务。此命令有如下选项: u003Cbru002Fu003E①:-d 在后台运行服务容器。 u003Cbru002Fu003E②:–no-color 不使用颜色来区分不同的服务的控制台输出。 u003Cbru002Fu003E③:–no-deps 不启动服务所链接的容器。 u003Cbru002Fu003E④:–force-recreate 强制重新创建容器,不能与 –no-recreate 同时使用。 u003Cbru002Fu003E⑤:–no-recreate 如果容器已经存在了,则不重新创建,不能与 –force-recreate 同时使用。 u003Cbru002Fu003E⑥:–no-build 不自动构建缺失的服务镜像。 u003Cbru002Fu003E⑦:-t, –timeout TIMEOUT 停止容器时候的超时(默认为 10 秒)。u003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003Edownu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E此命令停止用up命令所启动的容器并移除网络,如docker-compose -f skywalking.yml downu003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003Estopu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E格式为 docker-compose stop [options] [SERVICE…]u003Cbru002Fu003E停止已经处于运行状态的容器,但不删除它。通过 docker-compose start 可以再次启动这些容器,如果不指定service则默认停止所有的容器。如docker-compose -f skywalking.yml stop elasticsearchu003Cbru002Fu003E选项:u003Cbru002Fu003E-t, –timeout TIMEOUT 停止容器时候的超时(默认为 10 秒)。u003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003Estartu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E启动已经存在的服务容器。用法跟上面的stop刚好相反,如docker-compose -f skywalking.yml start elasticsearchu003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003Erestartu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E重启项目中的服务。用法跟上面的stop,start一样u003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003Elogsu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E格式为docker-compose logs [options] [SERVICE…]u003Cbru002Fu003E查看服务容器的输出。默认情况下,docker-compose 将对不同的服务输出使用不同的颜色来区分。可以通过 –no-color 来关闭颜色。该命令在调试问题的时候十分有用。如docker-compose -f skywalking.yml logs 查看整体的日志,docker-compose -f skywalking.yml logs elasticsearch 查看单独容器的日志u003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003Edocker compose 模板文件u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。本文主要列出几个常见&重要的指令,其他指令大家可以自行百度。u003Cbru002Fu003E默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式。u003Cu002Fpu003Eu003Cpreu003Eversion: '3'u003Cbru003Eservices:u003Cbru003E elasticsearch:u003Cbru003E image: elasticsearch:6.8.5u003Cbru003E container_name: elasticsearchu003Cbru003E restart: alwaysu003Cbru003E volumes:u003Cbru003E – u002Fappu002Fskywalkingu002Felasticsearchu002Fdata:u002Fusru002Fshareu002Felasticsearchu002Fdata:rwu003Cbru003E – u002Fappu002Fskywalkingu002Felasticsearchu002Fconfu002Felasticsearch.yml:u002Fusru002Fshareu002Felasticsearchu002Fconfigu002Felasticsearch.ymlu003Cbru003E – u002Fappu002Fskywalkingu002Felasticsearchu002Fconfu002Fjvm.options:u002Fusru002Fshareu002Felasticsearchu002Fconfigu002Fjvm.optionsu003Cbru003E – u002Fappu002Fskywalkingu002Felasticsearchu002Flogs:u002Fusru002Fshareu002Felasticsearchu002Flogs:rwu003Cbru003E environment:u003Cbru003E – TZ=Asiau002FShanghaiu003Cbru003E – xpack.monitoring.enabled=falseu003Cbru003E – xpack.watcher.enabled=falseu003Cbru003E ports:u003Cbru003E – "9200:9200"u003Cbru003E – "9300:9300"u003Cu002Fpreu003Eu003Cpu003E注意每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)等来自动构建生成镜像。如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中重复设置。u003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003E常用&重要命令u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cul class=””u003Eu003Cliu003Eimagesu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。u003Cu002Fpu003Eu003Cpreu003Eimage: apacheu002Fskywalking-oap-server:6.5.0u003Cbru003Eimage: apacheu002Fskywalking-ui:6.5.0u003Cu002Fpreu003Eu003Cul class=””u003Eu003Cliu003Eportsu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E暴露端口信息。u003Cbru002Fu003E使用宿主端口:容器端口 (HOST:CONTAINER) 格式,或者仅仅指定容器的端口(宿主将会随机选择端口)都可以,端口字符串都使用引号包括起来的字符串格式。u003Cu002Fpu003Eu003Cpreu003Eports: u003Cbru003E – "3000" u003Cbru003E – "8080:8080" u003Cbru003E – "127.0.0.1:8001:8001"u003Cu002Fpreu003Eu003Cul class=””u003Eu003Cliu003Evolumesu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E数据卷所挂载路径设置。可以设置为宿主机路径(HOST:CONTAINER)或者数据卷名称(VOLUME:CONTAINER),并且可以设置访问模式 (HOST:CONTAINER:ro)。u003Cu002Fpu003Eu003Cpreu003Evolumes:u003Cbru003E – u002Fappu002Fskywalkingu002Felasticsearchu002Fdata:u002Fusru002Fshareu002Felasticsearchu002Fdata:rwu003Cbru003E – confu002Felasticsearch.yml:u002Fusru002Fshareu002Felasticsearchu002Fconfigu002Felasticsearch.ymlu003Cu002Fpreu003Eu003Cpreu003Eversion: "3"u003Cbru003Eservices:u003Cbru003E my_src:u003Cbru003E image: mysql:8.0u003Cbru003E volumes:u003Cbru003E – mysql_data:u002Fvaru002Flibu002Fmysqlu003Cbru003Evolumes:u003Cbru003E mysql_data:u003Cu002Fpreu003Eu003Cul class=””u003Eu003Cliu003Eulimitsu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E指定容器的 ulimits 限制值。u003Cbru002Fu003E例如,指定最大进程数为 65535,指定文件句柄数为 20000(软限制,应用可以随时修改,不能超过硬限制) 和 40000(系统硬限制,只能 root 用户提高)。u003Cu002Fpu003Eu003Cpreu003Eulimits:u003Cbru003E nproc: 65535u003Cbru003E nofile:u003Cbru003E soft: 20000u003Cbru003E hard: 40000u003Cu002Fpreu003Eu003Cul class=””u003Eu003Cliu003Edepends_onu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E解决容器的依赖、启动先后的问题。以下例子中会先启动 redis mysql 再启动 webu003Cu002Fpu003Eu003Cpreu003Eversion: '3'u003Cbru003Eservices:u003Cbru003E web:u003Cbru003E build: .u003Cbru003E depends_on:u003Cbru003E – dbu003Cbru003E – redis u003Cbru003E redis:u003Cbru003E image: redis u003Cbru003E db:u003Cbru003E image: mysqlu003Cu002Fpreu003Eu003Cul class=””u003Eu003Cliu003Eenvironmentu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E设置环境变量。你可以使用数组或字典两种格式。u003Cu002Fpu003Eu003Cpreu003Eenvironment:u003Cbru003E SW_STORAGE: elasticsearchu003Cbru003E SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200u003Cbru003E u003Cbru003Eenvironment:u003Cbru003E – SW_STORAGE= elasticsearchu003Cbru003E – SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200u003Cu002Fpreu003Eu003Cul class=””u003Eu003Cliu003Erestartu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E指定容器退出后的重启策略为始终重启。该命令对保持服务始终运行十分有效,在生产环境中推荐配置为 always 或者 unless-stopped。 u003Cbru002Fu003Erestart: alwaysu003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003Edocker-compose 实战u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E首先我需要推荐两件事:u003Cu002Fpu003Eu003Cul class=””u003Eu003Cliu003E配置docker加速镜像u003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003E创建或修改u002Fetcu002Fdockeru002Fdaemon.jsonu003Cu002Fpu003Eu003Cpreu003Esudo mkdir -p u002Fetcu002Fdockeru003Cbru003Esudo tee u002Fetcu002Fdockeru002Fdaemon.json <<-'EOF'u003Cbru003E{u003Cbru003E "registry-mirrors": [u003Cbru003E "https:u002Fu002Fhub-mirror.c.163.com",u003Cbru003E "https:u002Fu002Fmirror.ccs.tencentyun.com",u003Cbru003E "https:u002Fu002Freg-mirror.qiniu.co"u003Cbru003E ]u003Cbru003E}u003Cbru003EEOFu003Cbru003Esudo systemctl daemon-reloadu003Cbru003Esudo systemctl restart dockeru003Cu002Fpreu003Eu003Cul class=””u003Eu003Cliu003E给你的ide工具装上docker插件u003Cu002Fliu003Eu003Cu002Fulu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002Fe1b92ed4cb784680b58752866109f02e” img_width=”800″ img_height=”313″ alt=”Docker-Compose基础与实战,看这一篇就够了” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E本次实战我们以docker-compose部署skywalking为例。编写skywalking.yml,内容如下。u003Cu002Fpu003Eu003Cpreu003Eversion: '3.3'u003Cbru003Eservices:u003Cbru003E elasticsearch:u003Cbru003E image: docker.elastic.cou002Felasticsearchu002Felasticsearch:6.8.5u003Cbru003E container_name: elasticsearchu003Cbru003E restart: alwaysu003Cbru003E ports:u003Cbru003E – 9200:9200u003Cbru003E – 9300:9300u003Cbru003E environment:u003Cbru003E discovery.type: single-nodeu003Cbru003E ulimits:u003Cbru003E memlock:u003Cbru003E soft: -1u003Cbru003E hard: -1u003Cbru003E oap:u003Cbru003E image: skywalkingu002Foapu003Cbru003E container_name: oapu003Cbru003E depends_on:u003Cbru003E – elasticsearchu003Cbru003E links:u003Cbru003E – elasticsearchu003Cbru003E restart: alwaysu003Cbru003E ports:u003Cbru003E – 11800:11800u003Cbru003E – 12800:12800u003Cbru003E environment:u003Cbru003E SW_STORAGE: elasticsearchu003Cbru003E SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200u003Cbru003E ui:u003Cbru003E image: skywalkingu002Fuiu003Cbru003E container_name: uiu003Cbru003E depends_on:u003Cbru003E – oapu003Cbru003E links:u003Cbru003E – oapu003Cbru003E restart: alwaysu003Cbru003E ports:u003Cbru003E – 8080:8080u003Cbru003E environment:u003Cbru003E SW_OAP_ADDRESS: oap:12800u003Cu002Fpreu003Eu003Cpu003E部署完成后将其上传至服务器,执行docker-compose -f u002Fappu002Fskywalking.yml up -d即可。u003Cbru002Fu003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F86611422867947b9b240fa0b0c096937″ img_width=”800″ img_height=”275″ alt=”Docker-Compose基础与实战,看这一篇就够了” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:Docker-Compose基础与实战,看这一篇就够了

主题测试文章,只做测试使用。发布者:程序员,转转请注明出处:http://www.cxybcw.com/26394.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code