docker-compose.yml文件 作者:马育民 • 2020-07-25 17:59 • 阅读:10062 # 介绍 将配置写在`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服务启动时,容器总是跟着启动 ``` 原文出处:http://malaoshi.top/show_1EF5xCVF9h3q.html