Docker Compose简介
什么是docker-compose?
Compose字面意思:对……排版。
Compose 是用于定义和运行多容器 Docker 应用程序的工具。
Compose 使用的三个步骤
- 定义好应用程序的环境,或者用Dockerfile定义。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 执行 docker-compose up 命令来启动并运行整个应用程序。
Compose离线安装
在线虽方便,但是限制多。
从github下载二进制包
下载地址:https://github.com/docker/compose/releases
上传并部署到服务器上
#!/bin/sh
# 如果最新的包名不是docker-compose,要重命名成docker-compose
sudo mv <最新的包> docker-compose
# 放在/usr/local/bin/目录下
sudo cp docker-compose /usr/local/bin/docker-compose
# 添加权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
Compose使用
创建环境
创建目录工作
#!/bin/sh
mkdri appdir
cd appdir
在工作目录中创建Dockerfile(不会创建的小伙伴请传这里传送门)。
如果启动很多个应用服务,可以放多个Dockerfile。
也可以把已经创建好的docker镜像放在docker images里面,不写Dockerfile。
创建docker-compose.yml
#!/bin/sh
vi docker-compose.yml
样例配置文件–有Dockerfile
version: '3'
services:
example-eureka:
build:
context: ./
dockerfile: Dockerfile-eureka
restart: always
ports:
- 1025:1025
example-config:
links:
- example-eureka:eureka
build:
context: ./
dockerfile: Dockerfile-config
restart: always
example-gateway:
links:
- example-eureka:eureka
- example-config:config
build:
context: ./
dockerfile: Dockerfile-gateway
restart: always
ports:
- 9999:9999
此Compose定义了3个服务:example-eureka,example-config,example-gateway。
样例配置文件–无Dockerfile
version: '3'
services:
nginx-yum:
restart: always
image: nginx:1.19.0
ports:
- 7080:80
- 7443:443
volumes:
- /app/nginx-yum/conf:/etc/nginx
- /app/ngin-yum/logs:/var/log/nginx
- /app/nginx-yum/html:/usr/share/nginx/html # 注意要把静态文件挂载出来
此Compose定义了1个服务:my-nginx
Compose常见指令
version
指定compose版本
version: '3'
services
定义的应用服务
services:
<服务名称>:
build
指定构建镜像的路径
build:
context: ./ # 上下文路径
dockerfile: Dockerfile-gateway # 指定构建镜像的 Dockerfile 文件名
image
指定容器运行的镜像
image: nginx:1.19.0
ports
指定映射端口
ports:
- 宿主机映射端:容器端
- 7443:443
volumes
指定挂载目录
ports:
- 宿主机挂载目录:容器目录
- /app/nginx-yum/conf:/etc/nginx

6461

被折叠的 条评论
为什么被折叠?



