ติดตั้ง Docker และ Compose บน CentOS 8 | RHEL 8
ในคู่มือนี้ เราจะนำคุณผ่านขั้นตอนการติดตั้ง Docker CE บน CentOS 8 | RHEL 8 เรายังจะครอบคลุมวิธีการติดตั้ง Docker Compose บน RHEL 8/CentOS 8 Linux ด้วย Docker ไม่ได้รับการสนับสนุนอย่างเป็นทางการบน RHEL 8 เนื่องจากถูกแทนที่ด้วยเครื่องมือของ Red Hat – buildah และ podman คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติใหม่ ๆ ที่มีในเวอร์ชัน RHEL 8 Linux ได้
- คุณสมบัติและรีวิวใหม่ของ Red Hat Enterprise Linux 8 (RHEL 8)
แต่ถ้าคุณใช้ Docker ทุกวันและไม่สามารถเปลี่ยนไปใช้ buildah และ podman ทันทีล่ะ? ไม่ต้องกังวลเพราะมีวิธีติดตั้ง Docker และ Docker Compose บน RHEL 8/CentOS 8 Docker คือเครื่องมือที่ช่วยให้คุณสร้าง เปิดใช้งาน และรันแอปพลิเคชันของคุณในคอนเทนเนอร์ คอนเทนเนอร์ช่วยให้นักพัฒนาสามารถรวมแอปพลิเคชันกับ dependencies ของมันและส่งออกเป็นแพ็กเกจเดียวกัน คอนเทนเนอร์มักถูกใช้ในสภาพแวดล้อม Microservices
ส่วนประกอบ/คำศัพท์ของ Docker
มีคำศัพท์เฉพาะของ Docker อยู่จำนวนหนึ่งที่เราจำเป็นต้องชี้แจงก่อนที่จะลงลึกไปยังตัวอย่างการติดตั้งและการใช้งาน ด้านล่างนี้คือคำศัพท์ที่ใช้กันทั่วไปในระบบนิเวศของ Docker
- เดมอนของ Docker: นี่เรียกอีกอย่างว่า Docker Engine เป็นกระบวนการที่ทำงานเบื้องหลังบนระบบโฮสต์ที่รับผิดชอบในการสร้างและรันคอนเทนเนอร์
- Docker Client: นี่คือเครื่องมือบรรทัดคำสั่งที่ผู้ใช้ใช้ในการโต้ตอบกับ Docker daemon
- Docker Image: อิมเมจคือไฟล์ที่ไม่สามารถเปลี่ยนแปลงได้ ซึ่งเป็นเหมือนภาพสแนปชอตของคอนเทนเนอร์ อิมเมจ Docker มีระบบไฟล์และการพึ่งพาของแอปพลิเคชันที่จำเป็นสำหรับการรันแอปพลิเคชัน
- คอนเทนเนอร์ Docker: นี่คืออินสแตนซ์ที่กำลังทำงานของอิมเมจ Docker ซึ่งมีแอปพลิเคชันและไลบรารีที่จำเป็น คอนเทนเนอร์แต่ละตัวมีรหัสกระบวนการ (Process ID) เฉพาะและแยกออกจากคอนเทนเนอร์อื่น สิ่งเดียวที่คอนเทนเนอร์แชร์กันคือเคอร์เนล (Kernel)
- Docker registry: นี่คือแอปพลิเคชันที่รับผิดชอบในการจัดการการจัดเก็บและการส่งมอบรูปภาพคอนเทนเนอร์ของ Docker ซึ่งสามารถเป็นแบบส่วนตัวหรือสาธารณะได้
ติดตั้ง Docker CE บน CentOS 8 | RHEL 8
จนถึงตอนนี้เราครอบคลุมการแนะนำ Docker และคำศัพท์ที่เกี่ยวข้องแล้ว เราควรพร้อมที่จะติดตั้ง Docker CE บน RHEL 8/CentOS 8 เราจะเริ่มต้นด้วยการติดตั้ง Docker แล้วจึงติดตั้ง Docker Compose
มี Docker ให้ใช้งานสองรุ่น
- Community Edition (CE): เหมาะสำหรับนักพัฒนารายบุคคลและทีมขนาดเล็กที่ต้องการเริ่มต้นใช้งาน Docker และทดลองกับแอปพลิเคชันบนคอนเทนเนอร์
- Enterprise Edition (EE): ออกแบบมาสำหรับการพัฒนาองค์กรและทีมไอทีที่สร้าง ส่งมอบ และใช้งานแอปพลิเคชันสำคัญต่อธุรกิจในสภาพแวดล้อมการผลิตขนาดใหญ่
Docker Enterprise Edition จำเป็นต้องมีใบอนุญาตที่ใช้งานได้ในการใช้งาน ในคู่มือนี้ เราจะติดตั้ง Docker CE บน RHEL 8 มาเพิ่มรีโพซิทอรีของ Docker ก่อนที่เราจะสามารถติดตั้งมันได้
### CentOS 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
### RHEL 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoคำสั่งนี้จะดาวน์โหลดไฟล์รีโพซิทอรีของ Docker ไปที่ /etc/yum.repos.d/docker-ce.repo มาอัปเดตแคชดัชนี RPM กันเถอะ
### CentOS 8 ###
$ sudo yum makecache
CentOS Linux 8 - AppStream 23 kB/s | 4.3 kB 00:00
CentOS Linux 8 - BaseOS 20 kB/s | 3.9 kB 00:00
CentOS Linux 8 - Extras 9.2 kB/s | 1.5 kB 00:00
Docker CE Stable - x86_64 291 kB/s | 19 kB 00:00
DigitalOcean Droplet Agent 51 kB/s | 3.3 kB 00:00
Metadata cache created.
### RHEL 8 ###
$ sudo yum makecache
Updating Subscription Management repositories.
Docker CE Stable - x86_64 14 kB/s | 3.8 kB 00:00
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) 33 kB/s | 2.8 kB 00:00
Red Hat Ansible Engine 2.8 for RHEL 8 x86_64 (RPMs) 29 kB/s | 2.4 kB 00:00
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) 30 kB/s | 2.4 kB 00:00
Red Hat Satellite Tools 6.6 for RHEL 8 x86_64 (RPMs) 29 kB/s | 2.1 kB 00:00
Metadata cache created.
คุณอาจจำเป็นต้องถอนการติดตั้งเวอร์ชันเก่าของ Docker ทั้งหมดพร้อมกับส่วนประกอบที่เกี่ยวข้อง นอกจากนี้ให้ถอนการติดตั้ง Podman และส่วนประกอบที่เกี่ยวข้องหากติดตั้งไว้แล้ว
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runcสุดท้าย ติดตั้ง Docker CE โดยรันคำสั่งด้านล่างในเทอร์มินัลของคุณ
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginถ้าคุณเจอปัญหาการขึ้นอยู่กับ Podman ให้อนุญาตการลบ
sudo yum install docker-ce --allowerasingยอมรับการติดตั้งโดยกดปุ่ม y บนแป้นพิมพ์ของคุณ:
...
Transaction Summary
================================================================================================================================================================================================
Install 12 Packages
Total download size: 93 M
Installed size: 389 M
Is this ok [y/N]: yนำเข้ากุญแจ GPG ด้วย
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 51 MB/s | 93 MB 00:01
Docker CE Stable - x86_64 44 kB/s | 1.6 kB 00:00
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <[email >"
Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
From : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: yเริ่มและเปิดใช้งานบริการ Docker เพื่อเริ่มทำงานเมื่อเปิดเครื่อง
$ sudo systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.สถานะของบริการ Docker ควรแสดงว่าอยู่ในสถานะกำลังทำงาน
$ systemctl status dockerกลุ่ม docker ถูกสร้างขึ้นแล้ว แต่ยังไม่มีผู้ใช้ใดถูกเพิ่มเข้าไปในกลุ่ม ให้เพิ่มผู้ใช้ของคุณเข้าสู่กลุ่มนี้เพื่อรันคำสั่ง docker โดยไม่ต้องใช้ sudo
$ sudo usermod -aG docker $USER
$ newgrp docker
$ id $USER
uid=1000(jmutai) gid=1000(jmutai) groups=1000(jmutai),10(wheel),984(docker)
ออกจากระบบแล้วเข้าสู่ระบบใหม่เพื่อใช้ Docker โดยไม่ต้องใช้ sudo สามารถตรวจสอบเวอร์ชันของ Docker ที่ติดตั้งได้ด้วย:
docker versionดึงภาพ Docker
ขั้นตอนสุดท้ายคือการทดสอบการติดตั้งของคุณโดยการดาวน์โหลดคอนเทนเนอร์ Docker สำหรับทดสอบ
$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
8e402f1a9c57: Pull complete
Digest: sha256:644fcb1a676b5165371437feaa922943aaf7afcfa8bfee4472f6860aad1ef2a0
Status: Downloaded newer image for alpine:latest
$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latestรายการภาพที่ดาวน์โหลดแล้ว
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 5cb3aa00f899 2 days ago 5.53MB
hello-world latest fce289e99eb9 2 months ago 1.84kBตรวจสอบว่า Docker CE ทำงานได้อย่างถูกต้องโดยการรันคอนเทนเนอร์ alpine จากอิมเมจที่ดาวน์โหลดมา
$ docker run -it --rm alpine /bin/sh
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/main]
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/community]
OK: 9754 distinct packages available
/ # exitสวัสดีโลก คอนเทนเนอร์ รัน
$ docker run -it --rm hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/ติดตั้ง Docker Compose บน CentOS 8 | CentOS 8
เรามี Docker ติดตั้งและกำลังทำงานแล้ว ตอนนี้เรามาเปลี่ยนไปใช้ Docker Compose กัน Docker Compose เป็นเครื่องมือที่ใช้ในการกำหนดค่าและรันแอปพลิเคชัน Docker หลายคอนเทนเนอร์
บริการของแอปพลิเคชันถูกกำหนดค่าโดยใช้ไฟล์ Compose แตกต่างจากการรันคำสั่ง docker การสั่งงานเพียงคำสั่งเดียวก็เพียงพอที่จะสร้างและเริ่มต้นบริการทั้งหมดจากการกำหนดค่าของคุณ Docker Compose เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการพัฒนา การทดสอบ และสภาพแวดล้อมการสเตจ รวมถึงเวิร์กโฟลว์ CI
ติดตามคู่มือแยกของเราเกี่ยวกับการติดตั้ง Docker Compose เวอร์ชันล่าสุดบน Linux
- ติดตั้ง Docker Compose บนลินุกซ์
เพื่อความกระชับของคู่มือนี้ เราจะไม่ลงลึกถึงการใช้งาน Docker Compose ผมแนะนำให้คุณศึกษาจากเอกสารทางการของ Docker และเอกสาร Docker Compose เพื่อเรียนรู้เพิ่มเติม
ติดตั้ง Docker UI – เป็นทางเลือก
หากคุณต้องการ UI สำหรับจัดการ Docker ที่ช่วยให้คุณจัดการโฮสต์และคอนเทนเนอร์ Docker หลายตัวได้อย่างง่ายดาย โปรดลองใช้ Portainer มันติดตั้งและใช้งานได้ง่าย
- วิธีติดตั้ง Portainer ตัวจัดการ UI สำหรับ Docker
การติดตามคอนเทนเนอร์ Docker
การติดตามคอนเทนเนอร์ Docker สามารถทำได้โดยใช้เครื่องมือติดตาม เช่น Netdata หรือ Ctop หรือ Prometheus และ Grafana คู่มือด้านล่างนี้น่าจะเป็นประโยชน์
- Ctop – คำสั่ง Top สำหรับเมตริกของคอนเทนเนอร์
- วิธีติดตั้ง Netdata บน RHEL 8/CentOS 8
- ติดตั้ง Harbor Docker registry บน Linux