上两篇文章都是再玩儿Dockerfile,主要是基于Dockerfile构建各类处事镜像。而本文将先容及演示docker的自动编排东西——docker compose的观念和利用。
什么是docker compose?先前我们在利用Dockerfile构建镜像时,在编写好Dockerfile文件以及其他须要文件后,需要利用docker build 、docker run 等呼吁操纵{建设,启动,遏制等}容器。然而,在微处事架构体系中,一个应用系统一般包括若干个处事器,每个微处事凡是城市陈设多个实例,假如每个处事都要手动启停,那么这样效率太低了,并且维护也很是不利便。
因此,便有了docker compose,它可以轻松、高效地打点容器,是一个用于界说和运行多容器docker的应用措施东西。
下面团结实际例子来利用以下docker compose东西吧,之后会给出编排文件常用的字段先容以及docker-compose的相关呼吁先容。
基于docker compose东西构建nginx容器处事首先,我们需要建设一个目次,个中需要包括一个构建Dockerfile的nginx目次,首页页面测试目次以及docker-compose.yml文件
所以,一方面我们需要docker安装情况,也需要安装docker compose东西;
再者,依旧是需要编写nginx处事的Dockerfile和运行剧本,团结指定的页脸孔录来举办测试验证;
接下来,编写yml名目标docker-compose.yml文件,而且执行对应的呼吁。
下面是这个案例的目次布局
[root@localhost opt]# tree compose_nginx/ compose_nginx/ ├── docker-compose.yml ├── nginx │?? ├── Dockerfile │?? └── nginx.sh └── wwwroot └── index.html 2 directories, 4 filesDockerfile以及对应的文件都无需变动,我们需要做的就是编写一个首页页面
[root@localhost opt]# cat compose_nginx/wwwroot/index.html <h1>this is test web</h1>接着编写docke-compose.yml文件
[root@localhost opt]# cat compose_nginx/docker-compose.yml version: '3' services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: - 1216:80 - 1217:443 networks: - cluster volumes: - ./wwwroot:/usr/local/nginx/html networks: cluster:docker-compose.yml文件表明
version:声明版本,今朝是3 service:详细的处事 nginx:处事名称 hostname:容器主机名称 build:建设 context:提供资源和素材提供的目次,用来建设容器的路径 dockerfile:Dockerfile文件 ports:提供的端口,相当于执行docker run -p的配置 networks:网络名称,假如是群集那么这个名称配置需要一致(同一个网络情况) volumes:数据卷,本次案例是提供首页页面 networks:services的子选项针对外果真的网络名称启动运行
[root@localhost opt]# docker-compose -f compose_nginx/docker-compose.yml up -d #-f——指定文件 -d——靠山 up——启动 ....//第一次执行进程较量久,显示信息多,这里就省略了。运行的功效和一些表明如下图
假如反复执行上述呼吁则会呈现以下功效,因此这个WARNING是一个较量友好的提示哦!
[root@localhost opt]# docker-compose -f compose_nginx/docker-compose.yml up -d compose_nginx_nginx_1 is up-to-date查察镜像和容器
[root@localhost opt]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE compose_nginx_nginx latest 67f9a64cc32d 5 minutes ago 587MB CentOS 7 5e35e350aded 5 months ago 203MB [root@localhost opt]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8f3d48d7c765 compose_nginx_nginx "/nginx.sh" 5 minutes ago Up 5 minutes 0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp compose_nginx_nginx_1测试验证:
Docker compose设置常用字段(.yml文件中) Docker compose常用呼吁(bash终端)Linux公社的RSS地点:https://www.linuxidc.com/rssFeed.aspx