docker-compose常见参数指北

docker-compose常见参数指北

Docker-compose

官方网站

https://docs.docker.com/compose/compose-file/

常用指令

1
2
3
docker-compose up -d
docker-compose down
docker-compose build

docker-compose各项参数的意义

这里列出一些常用的参数。

[+]version

指定版本,1,2,3各有不同

demo:

1
version: '2'

[+]services

编排的服务,可以理解成为需要起的docker

demo:

1
2
3
version: '2'
services:
xxx:

[+]Imagin

镜像的名字,如果本地没有的话就会从远程pull。如果本地有的话,优先级会高于远程的。

demo:

1
2
3
4
version: '2'
services:
web:
image: ubuntu

[+]Container_name:

dockerrun之后的container的名字

Demo

1
2
3
4
version: '2'
services:
web:
container_name: mysql

[*]build:

指明docker build的文件夹

Demo:

1
2
3
4
version: '2'
services:
web:
build: ./src

Docker file

build的子选项,用于指定dockerfile

Demo:

1
2
3
4
5
version: '2'
services:
web:
build: ./src
dockerfile: Dockerfile

SHM_SIZE

用于设定/dev/shm的大小.version>3.4

1
2
3
4
5
version: '2'
services:
web:
build: ./src
shm_size: '2gb'

[+]restart

用于同步docker和宿主机的文件信息,默认是no。变成always则会及时同步

demo:

1
2
3
4
version: '2'
services:
web:
restart: always

[+]tty

似乎是打印日志之类的作用。开着吧开着吧

demo:

1
2
3
4
version: '2'
services:
web:
tty: true

[+]volumes

挂载的,即本地和docker内部文件进行一个同步的作用。

demo:

1
2
3
4
5
version: '2'
services:
web:
volumes:
- ./:/var/www/html/

[+]ports

本地和docker内部端口映射关系

1
2
3
4
5
version: '2'
services:
web:
ports:
- 本地:docker

[*]networks

用于设计docker内部的网络关系的。

1
2
3
4
5
6
networks:
extnetwork:
ipam:
config:
- subnet: 172.32.0.0/16
gateway: 172.32.0.1

这个地方合并讲一下。

  • extnetwork是指名字
  • ipam
    • config
      • subnet这个是指定ip的范围
      • getway可以理解成路由器吧,网关的意思

docker怎么使用

ipv4_address指定container的ip

extnetworknetworks中设定的名字

demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '2'
services:
nginx:
image: nginx
container_name: nginx
restart: always
tty: true
volumes:
- ./src/conf.d:/etc/nginx/conf.d
- ./src/nginx.conf:/etc/nginx/nginx.conf
- ./src/www/:/usr/share/nginx/html
ports:
- "8899:80"
networks:
extnetwork:
ipv4_address: 172.32.0.2

[+]environment

设置docker中的环境变量

1
2
3
4
5
version: '2'
services:
mysql:
environment:
MYSQL_ROOT_PASSWORD:

模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
version: '2'
services:
nginx:
image: nginx
container_name: nginx
restart: always
tty: true
volumes:
- ./src/conf.d:/etc/nginx/conf.d
- ./src/nginx.conf:/etc/nginx/nginx.conf
- ./src/www/:/usr/share/nginx/html
ports:
- "8899:80"
networks:
extnetwork:
ipv4_address: 172.32.0.2
php-fpm:
image: devilbox/php-fpm:5.6-mods
container_name: php-fpm
restart: always
tty: true
volumes:
- './src/www:/var/www/html'
- './src/php.ini:/usr/local/etc/php/php.ini'
- './src/xxx-devilbox-default-php.ini:/usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini'
- './src/php-fpm.conf:/usr/local/etc/php-fpm.conf'

networks:
extnetwork:
ipv4_address: 172.32.0.3
mysql:
build: ./src/mysql
image: mysql
container_name: mysql
restart: always
volumes:
- './src/mysql/general.log:/tmp/general_log.log'
- ./src/mysql/data:/docker-entrypoint-initdb.d
tty: true
environment:
MYSQL_ROOT_PASSWORD:
networks:
extnetwork:
ipv4_address: 172.32.0.4

networks:
extnetwork:
ipam:
config:
- subnet: 172.32.0.0/16
gateway: 172.32.0.1
# 推荐文章

评论


:D 一言句子获取中...

加载中,最新评论有1分钟延迟...