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:
[+]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:
docker
run之后的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
extnetwork
是networks
中设定的名字
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
|