docker-compose.yml文件

介绍

将配置写在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/

官方建议:

使用版本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服务启动时,容器总是跟着启动

原文出处:/show_1EF5xCVF9h3q.html