利用docker搭建一個mysql + java service + nginx,總共4個docker容器,如果采用docker run的方式一個一個容器去創建十分麻煩。為了能更高效的批量創建容器,docker推出了docker-compose工具,只需要定義一個docker-compose.yml文件即可快速搞定一組容器的創建,
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
|
mysql: image: daocloud.io/yjmyzz/mysql-osx:latest volumes: - ./mysql/db:/var/lib/mysql ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=123456 service1: image: java:latest volumes: - ./java:/opt/app expose: - 8080 #ports: # - 9081:8080 links: - mysql: default command: java -jar /opt/app/spring-boot-rest-framework-1.0.0.jar service2: image: java:latest volumes: - ./java:/opt/app expose: - 8080 #ports: # - 9082:8080 links: - mysql: default command: java -jar /opt/app/spring-boot-rest-framework-1.0.0.jar nginx1: image: nginx:latest volumes: - ./nginx/html:/usr/share/nginx/html:ro - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/conf.d:/etc/nginx/conf.d:ro #expose: # - 80 ports: - "80:80" links: - service1:service1 - service2:service2 |
內容不復雜,具體的關鍵字說明見本文最后的參考文章鏈接。
問題:這個文件放在哪里?
參見下面的目錄結構:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
mysql-java-nginx ├── docker-compose.yml ├── java │ └── spring-boot-rest-framework-1.0.0.jar ├── mysql │ └── db └── nginx ├── conf ├── conf.d │ └── default .conf ├── html │ └── index .html └── nginx.conf |
創建容器:
1
2
|
cd mysql-java-nginx docker-compose up |
就是這么簡單,一個up就搞定了所有容器的創建,up通常用于首次創建,可以觀察終端實時輸出的日志內容判斷容器是否啟動正常,如果沒什么問題,直接Ctrl+C退出,然后
docker-compose start
以后臺方式啟動容器。
其它命令還有:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
Commands: build Build or rebuild services help Get help on a command kill Kill containers logs View output from containers pause Pause services port Print the public port for a port binding ps List containers pull Pulls service images restart Restart services rm Remove stopped containers run Run a one- off command scale Set number of containers for a service start Start services stop Stop services unpause Unpause services up Create and start containers migrate- to -labels Recreate containers to add labels version Show the Docker-Compose version information |
基本上看名字就知道意思了。
參考文章:
https://docs.docker.com/compose/compose-file/
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!