Docker Compose Tutorial - Docker in Practice || Docker Tutorial 9
สารบัญ:
- ข้อกำหนดเบื้องต้น
- ติดตั้ง Docker Compose บน Debian
- เริ่มต้นใช้งาน Docker Compose
- ถอนการติดตั้ง Docker Compose
- ข้อสรุป
Docker Compose เป็นเครื่องมือที่ช่วยให้คุณสามารถกำหนดและปรับแต่งแอปพลิเคชันนักจัดเก็บหลายคอนเทนเนอร์ มันใช้ไฟล์ YAML เพื่อกำหนดค่าคอนเทนเนอร์เครือข่ายและปริมาณแอปพลิเคชัน
การเขียนสามารถนำไปใช้เพื่อวัตถุประสงค์ต่าง ๆ ได้ การปรับใช้แอปพลิเคชันโฮสต์เดียวการทดสอบอัตโนมัติและการพัฒนาในท้องถิ่นเป็นกรณีการใช้งานที่ได้รับความนิยมสูงสุดสำหรับ Docker Compose
บทช่วยสอนนี้จะดำเนินการผ่านขั้นตอนการติดตั้ง Docker Compose เวอร์ชันล่าสุดบน Debian 9 นอกจากนี้เราจะสำรวจแนวคิดพื้นฐานและคำสั่ง Docker Compose
ข้อกำหนดเบื้องต้น
ตรวจสอบให้แน่ใจว่าคุณได้ทำตามข้อกำหนดเบื้องต้นต่อไปนี้ก่อนที่จะดำเนินการกับบทช่วยสอนนี้:
- ลงชื่อเข้าใช้ด้วยชื่อผู้ใช้ด้วยสิทธิ์ sudo ติดตั้งลงในเครื่อง Debian 9 ของคุณ
ติดตั้ง Docker Compose บน Debian
แพ็คเกจการติดตั้ง Docker Compose มีให้บริการในที่เก็บ Debian 9 อย่างเป็นทางการ แต่อาจไม่ใช่เวอร์ชันล่าสุดเสมอไป วิธีที่แนะนำคือการติดตั้ง Docker Compose จากที่เก็บ GitHub ของ Docker
ในขณะที่เขียนบทความนี้ Docker Compose รุ่นเสถียรล่าสุดคือเวอร์ชั่น
1.23.1
ก่อนที่จะดาวน์โหลด Compose binary เข้าไปที่หน้าการวางระบบ Compose บน GitHub และตรวจสอบว่ามีเวอร์ชั่นใหม่ให้ดาวน์โหลดหรือไม่
ทำตามขั้นตอนต่อไปนี้เพื่อติดตั้ง Docker Compose เวอร์ชั่นล่าสุดบน Debian 9:
-
เริ่มต้นด้วยการดาวน์โหลด Docker Compose ไบนารีลงในไดเร็กทอรี
/usr/local/bin
โดยใช้คำสั่งcurl
ต่อไปนี้:sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
เมื่อการดาวน์โหลดเสร็จสิ้นให้สิทธิ์ในการเรียกทำงานกับไบนารีการเขียน:
sudo chmod +x /usr/local/bin/docker-compose
ตรวจสอบการติดตั้งโดยพิมพ์:
docker-compose --version
ผลลัพธ์จะมีลักษณะดังนี้:
docker-compose version 1.23.1, build b02f1306
เริ่มต้นใช้งาน Docker Compose
ในส่วนนี้เราจะแสดงวิธีใช้ Docker Compose เพื่อจัดการ WordPress stack บนเครื่อง Debian 9 ของคุณ
เริ่มต้นด้วยการสร้างไดเรกทอรีสำหรับโครงการและเปลี่ยนเป็น:
mkdir wordpress_app
cd wordpress_app
เปิดเท็กซ์เอดิเตอร์ของคุณและสร้างไฟล์ชื่อ
docker-compose.yml
ภายในไดเร็กทอรีโปรเจ็กต์:
nano docker-compose.yml
วางเนื้อหาต่อไปนี้:
นักเทียบท่า-compose.yml
version: '3.3' services: db: image: mysql:5.7 restart: always volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: wordpress wordpress: image: wordpress restart: always volumes: -./wp_data:/var/www/html ports: - "8080:80" environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_NAME: wordpress WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: password depends_on: - db volumes: db_data: wp_data:
ดังนั้นรหัสข้างต้นทำอะไร
ในบรรทัดแรกเรากำลังระบุรุ่นไฟล์เขียน มีรูปแบบไฟล์ Compose หลายรุ่นหลายรุ่นพร้อมการรองรับ Docker เฉพาะรุ่น
ต่อไปเราจะกำหนดบริการสองรายการคือ
db
และ
wordpress
แต่ละบริการจะเรียกใช้หนึ่งอิมเมจและมันจะสร้างที่เก็บแยกต่างหากเมื่อมีการเรียกใช้งานนักเทียบท่า
บริการ
db
:
- ใช้
mysql:5.7
อิมเมจ หากไม่มีอิมเมจในระบบของคุณ Compose จะดึงออกจากที่เก็บข้อมูลสาธารณะ Docker Hub ใช้นโยบายการรีสตาร์ทalways
ซึ่งจะสั่งให้คอนเทนเนอร์รีสตาร์ททุกครั้งสร้างวอลุ่มที่มีชื่อdb_data
เพื่อคงฐานข้อมูลกำหนดตัวแปรสภาพแวดล้อมสำหรับmysql:5.7
ภาพ
บริการ
wordpress
:
- ใช้ภาพ
wordpress
หากไม่มีอิมเมจในระบบของคุณ Compose จะดึงมันออกจากที่เก็บข้อมูลสาธารณะ Docker Hub ใช้นโยบายการรีสตาร์ทalways
ซึ่งจะแนะนำให้คอนเทนเนอร์เริ่มต้นใหม่always
wp_data
ไดเรกทอรีwp_data
บนโฮสต์ไปยัง/var/lib/mysql
ภายใน คอนเทนเนอร์ส่งต่อพอร์ต 80 ที่เปิดเผยบนคอนเทนเนอร์ไปยังพอร์ต 8080 บนเครื่องโฮสต์กำหนดตัวแปรสภาพแวดล้อมสำหรับอิมเมจwordpress
คำสั่งdepends_on
กำหนดการพึ่งพาระหว่างสองบริการ ในตัวอย่างนี้db
จะเริ่มก่อนwordpress
จากไดเรกทอรีโครงการเริ่มต้นแอปพลิเคชัน WordPress โดยเรียกใช้คำสั่งต่อไปนี้:
docker-compose up
ผลลัพธ์ควรมีลักษณะดังนี้:
… wordpress_1_70f2f980e1fb | AH00163: Apache/2.4.25 (Debian) PHP/7.2.12 configured -- resuming normal operations wordpress_1_70f2f980e1fb | AH00094: Command line: 'apache2 -D FOREGROUND'
การเรียบเรียงจะดึงทั้งสองภาพเริ่มต้นสองคอนเทนเนอร์และสร้างไดเรกทอรี
wp_data
ในไดเรกทอรีโครงการของคุณ
ป้อน
http://0.0.0.0:8080/
ในเบราว์เซอร์ของคุณและคุณจะเห็นหน้าจอการติดตั้ง Wordpress
ณ จุดนี้แอปพลิเคชั่น WordPress เปิดใช้งานแล้วและคุณสามารถเริ่มทำงานกับธีมหรือปลั๊กอินของคุณได้
หากต้องการหยุดเขียนให้กด
CTRL+C
คุณยังสามารถเริ่มเขียนข้อความในโหมดเดี่ยวได้โดยผ่านแฟ
-d
docker-compose up -d
ในการตรวจสอบบริการที่ทำงานอยู่ให้ใช้ตัวเลือก
ps
:
docker-compose ps
Name Command State Ports ---------------------------------------------------------------------------------- wordpress_app_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp wordpress_app_wordpress_1 docker-entrypoint.sh apach… Up 0.0.0.0:8080->80/tcp
เมื่อ Compose กำลังทำงานในโหมดแยกเดี่ยวเพื่อหยุดการใช้บริการ:
docker-compose stop
docker-compose down
ผ่านสวิตช์ - ปริมาณจะลบปริมาณข้อมูล:
ถอนการติดตั้ง Docker Compose
sudo rm /usr/local/bin/docker-compose
ข้อสรุป
คุณได้เรียนรู้วิธีการติดตั้งและใช้ Docker Compose บน Debian 9 หากคุณมีคำถามใด ๆ โปรดแสดงความคิดเห็นด้านล่าง
นักเทียบท่าเดเบียน