【笔记】DockerCompose学习笔记

前言

DockerCompose学习笔记

下载依赖

Debian

1
apt install docker-compose

定义配置文件版本

1
version: "2.1"

配置容器

配置镜像

通过DockerHub下载

1
2
3
services:
<service_name>:
image: <image_name>:<tag>
1
2
3
services:
<service_name>:
image: registry.hub.docker.com/<image_name>:<tag>

通过Github下载

1
2
3
services:
<service_name>:
image: ghcr.io/<image_name>:<branch>

通过Dockerfile手动编译

1
2
3
services:
<service_name>:
build: .

配置容器名

1
2
3
4
services:
<service_name>:
image: <image_name>:<tag>
container_name: <container_name>

配置环境变量

1
2
3
4
5
services:
<service_name>:
image: <image_name>:<tag>
environment:
- <key>=<value>

配置数据卷映射

1
2
3
4
5
services:
<service_name>:
image: <image_name>:<tag>
volumes:
- <src_out>:<src_in>

配置端口映射

1
2
3
4
5
services:
<service_name>:
image: <image_name>:<tag>
ports:
- <port_out>:<port_in>

配置日志

1
2
3
4
5
6
7
8
services:
<service_name>:
image: <image_name>:<tag>
logging:
driver: "json-file"
options:
max-size: "1000k"
max-file: "20"

配置被链接的容器

  • 被链接的容器可以通过容器名和端口号的方式被当前容器访问
1
2
3
4
5
6
7
8
9
services:
<service_name>:
image: <image_name>:<tag>
environment:
- <key>=<service_name2>:<port>
links:
- <service_name2>
<service_name2>:
image: <image_name>:<tag>

配置被依赖的容器

  • 被依赖的容器会优先于当前容器启动
1
2
3
4
5
6
7
services:
<service_name>:
image: <image_name>:<tag>
depends_on:
- <service_name2>
<service_name2>:
image: <image_name>:<tag>

配置网络

配置新创建的网络

<network_type>:网络类型

bridge
host
none
macvlan

1
2
3
4
5
6
7
8
9
networks:
<network_name>:
driver: <network_type>

services:
<service_name>:
image: <image_name>:<tag>
networks:
- <network_name>

配置已存在的网络

1
2
3
4
5
6
7
8
9
10
networks:
<network_name>:
external: true

services:
<service_name>:
image: <image_name>:<tag>
networks:
<network_name>:
ipv4_address: <ip>

启用特权模式

1
2
3
4
services:
<service_name>:
image: <image_name>:<tag>
privileged: true

完成

参考文献

CSDN——叽米
CSDN——WEL测试
CSDN——gold0523
CSDN——Kiloveyousmile
CSDN——九亿少女的梦@