介绍
将配置写在docker-compose.yml文件中,然后通过docker-compose命令执行该文件
也可以定义成其他名字
更多介绍参见
https://www.jianshu.com/p/658911a8cff3
https://deepzz.com/post/docker-compose-file.html#toc_31
yml结构
主要包含下面几个部分:
version
目前,docker-compose.yml经过3次大更新,参见:
https://docs.docker.com/compose/compose-file/
官方建议:
1.x不要使用,不支持网络功能。在 https://docs.docker.com/compose/networking/ 有说明3.x和2.x基本通用,区别是:2.x只能单机部署,3.x搭配swarm可以实现docker集群部署
使用版本3.x
services
一个service代表一个container,该 container 也是根据image创建的。
该image可以从 hub.docker.com 下载,也可以自己构建可以给service指定 network 和 volume
volumes
挂载的卷
networks
配置容器连接的网络
例子
在/root目录下创建docker_tomcat文件夹
cd /root
mkdir docker_tomcat
在/root/docker_tomcat目录下创建docker-compose.yml文件,
cd docker_tomcat
vim docker-compose.yml
内容如下:
version: '3'
services:
tomcat1:
image: tomcat # 镜像
container_name: tomcat1 # 指定容器名称
ports: # bridge网络模式,指定映射端口
- "8080:8080"
restart: always # 当docker服务启动时,容器总是跟着启动
指定挂载卷
在/root/docker_tomcat目录下创建docker-compose2.yml文件,
vim docker-compose2.yml
内容如下:
version: '3'
services:
tomcat1:
image: tomcat # 镜像
container_name: tomcat1 # 指定容器名称
ports: # bridge网络模式,指定映射端口
- "8080:8080"
restart: always # 当docker服务启动时,容器总是跟着启动
volumes:
- /root/docker_tomcat/webapps:/usr/local/tomcat/webapps
在/root/docker_tomcat/webapps文件夹下创建test文件夹
cd /root/docker_tomcat/webapps
mkdir test
在该test文件夹下创建index.html:
vim index.html
内容如下:
测试 test
访问 http://106.13.165.100:8080/test/ 能够正常访问,可能中文乱码
nginx
version: '3'
services:
nginx:
image: nginx # 镜像
container_name: nginx # 指定容器名称
ports: # bridge网络模式,指定映射端口
- "8000:80"
# network_mode: "host" # 指定网络模式
restart: always # 当docker服务启动时,容器总是跟着启动