วันอาทิตย์ที่ 27 พฤศจิกายน พ.ศ. 2559

Docker#3 Docker compose

จากความเดิมตอนที่แล้ว ( ตอนที่1 | ตอนที่ 2) ซึ่งจะเห็นได้มีขั้นตอนหลายอย่าง หากต้องมาทำทุกครั้งเวลา ติดตั้ง server ใหม่ ก็จะไม่สะดวก  คราวนี้  เราจะเขียน script ขั้นตอน ทั้งหมดไว้ในไฟล์ docker-compose.yml
ดังนี้
version: '2'
services:
### MySQL Container #########################################
mysql:
image: mysql:5.7.4
environment:
- MYSQL_DATABASE=dev
- MYSQL_USER=root
- MYSQL_PASSWORD=password
- MYSQL_ROOT_PASSWORD=password
volumes:
- ./data:/var/lib/mysql
ports:
- "3306:3306"
container_name: mysql
### PHP-FPM Container #######################################
phpfpm:
image: php:7.0-fpm
volumes:
- ./www:/usr/share/nginx/html
depends_on:
- mysql
links:
- mysql
container_name: phpfpm
### Nginx Server Container ##################################
nginx:
image: nginx:1.11
volumes_from:
- phpfpm
volumes:
- ./www:/usr/share/nginx/html
- ./conf.d:/etc/nginx/conf.d
ports:
- "80:80"
- "443:443"
links:
- phpfpm
container_name: nginx
### phpMyAdmin Container ####################################
myadmin:
image: phpmyadmin/phpmyadmin:4.6.4-1
environment:
PMA_ARBITRARY: 1
MYSQL_USER: root
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
ports:
- "8080:80"
container_name: myadmin
จากนั้น คำสั่งยาว ๆ ที่เราทดสอบกันมา เปลี่ยนมาใช้แค่สั้น ๆ บรรทัดเดียว คือ

docker-compose up -d

ตามนี้เลยครับ
สั่ง docker ps ก็จะเห็น


ถ้าจะยกเลิกทั้งหมด ก็สั่ง

docker-compose down

และนี้คือเหตุผลว่าทำไมเราต้อง map volume ต่าง ๆ เข้าไปอยู่ใน container เนื่องจาก เวลาสั่ง docker-compose down แล้ว container จะถูกทำลาย ถ้า volume ไหน ที่ไม่ได้ถูก map ด้วย ก็จะหายไปหมดได้ครับ

2 ความคิดเห็น:

sbbk กล่าวว่า...

ไม่ต้องแคร์ก็ได้ เบบี้มายด์ก็ใช้ได้เหมือนกัน sexy-baccarat

sanny กล่าวว่า...

Money distribution application That can be played every day starvegas