การใช้ Docker กับ Linux
บทนำ
Docker เป็นเครื่องมือที่ช่วยในการจัดการคอนเทนเนอร์ในระบบ Linux โดยการสร้างและจัดการแอปพลิเคชันในรูปแบบคอนเทนเนอร์ที่สามารถทำงานได้ในทุกที่ การใช้ Docker บน Linux ช่วยให้คุณสามารถสร้างและจัดการคอนเทนเนอร์ได้อย่างง่ายดายในสภาพแวดล้อมที่ต่างกัน การใช้ Docker บน Linux สามารถเพิ่มประสิทธิภาพในการพัฒนาและการปรับใช้แอปพลิเคชันได้อย่างมาก
1. การติดตั้ง Docker บน Linux
1.1 การติดตั้ง Docker บน Ubuntu
เพื่อเริ่มต้นใช้งาน Docker บน Ubuntu, คุณต้องทำการติดตั้ง Docker โดยใช้คำสั่งต่อไปนี้:
# อัพเดตฐานข้อมูลแพ็คเกจ
sudo apt update
# ติดตั้ง dependencies ที่จำเป็น
sudo apt install apt-transport-https ca-certificates curl software-properties-common
# เพิ่ม GPG key ของ Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# เพิ่ม Docker repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# อัพเดตฐานข้อมูลแพ็คเกจ
sudo apt update
# ติดตั้ง Docker
sudo apt install docker-ce
1.2 การติดตั้ง Docker บน CentOS
# ติดตั้ง dependencies ที่จำเป็น
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# เพิ่ม Docker repository
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# ติดตั้ง Docker
sudo yum install docker-ce docker-ce-cli containerd.io
# เริ่มบริการ Docker
sudo systemctl start docker
sudo systemctl enable docker
2. การใช้งาน Docker เบื้องต้น
2.1 การตรวจสอบสถานะของ Docker
หลังจากติดตั้ง Docker แล้ว คุณสามารถตรวจสอบสถานะของ Docker service ได้โดยใช้คำสั่ง:
sudo systemctl status docker
2.2 การตรวจสอบเวอร์ชันของ Docker
คุณสามารถตรวจสอบเวอร์ชันของ Docker ที่ติดตั้งในระบบได้ด้วยคำสั่ง:
docker --version
2.3 การดึง Docker Image
ในการใช้งาน Docker, คุณสามารถดึง Docker image จาก Docker Hub หรือ registry อื่นๆ ด้วยคำสั่ง docker pull:
docker pull ubuntu:latest
2.4 การสร้าง Docker Container
คุณสามารถสร้างและรันคอนเทนเนอร์จาก image ที่คุณดึงมา:
docker run -it ubuntu:latest bash
คำสั่งนี้จะทำการรันคอนเทนเนอร์จาก image ubuntu:latest และเข้าสู่ shell ของคอนเทนเนอร์
3. การจัดการ Docker Container
3.1 การดูคอนเทนเนอร์ที่กำลังรัน
คุณสามารถดูคอนเทนเนอร์ที่กำลังรันอยู่ในระบบได้โดยใช้คำสั่ง:
docker ps
3.2 การดูคอนเทนเนอร์ทั้งหมด (รวมถึงที่หยุดการทำงานแล้ว)
docker ps -a
3.3 การหยุดคอนเทนเนอร์
หากคุณต้องการหยุดการทำงานของคอนเทนเนอร์ที่กำลังทำงานอยู่, ใช้คำสั่ง:
docker stop <container_id>
3.4 การลบคอนเทนเนอร์
การลบคอนเทนเนอร์ที่หยุดทำงานแล้ว:
docker rm <container_id>
3.5 การลบ Docker Image
หากคุณต้องการลบ Docker image:
docker rmi <image_id>
4. การสร้าง Dockerfile และการสร้าง Docker Image
4.1 การสร้าง Dockerfile
Dockerfile คือไฟล์ที่ใช้ในการกำหนดขั้นตอนการสร้าง Docker image ด้วยคำสั่งต่างๆ เช่น การติดตั้งซอฟต์แวร์ และการคอนฟิกการทำงาน
ตัวอย่าง Dockerfile สำหรับสร้างแอปพลิเคชัน Node.js:
# ใช้ base image ของ Node.js
FROM node:14
# กำหนด working directory
WORKDIR /app
# คัดลอกไฟล์ package.json และ package-lock.json
COPY package*.json ./
# ติดตั้ง dependencies
RUN npm install
# คัดลอกไฟล์โปรเจคทั้งหมด
COPY . .
# เปิดพอร์ตที่แอปพลิเคชันจะใช้
EXPOSE 3000
# เรียกใช้งานคำสั่งในการเริ่มแอปพลิเคชัน
CMD ["npm", "start"]
4.2 การสร้าง Docker Image
หลังจากสร้าง Dockerfile แล้ว คุณสามารถใช้คำสั่ง docker build เพื่อสร้าง Docker image:
docker build -t my-node-app .
5. การใช้ Docker Compose
5.1 การติดตั้ง Docker Compose
Docker Compose ช่วยให้คุณสามารถจัดการกับหลายๆ คอนเทนเนอร์ในครั้งเดียว คุณสามารถติดตั้ง Docker Compose ได้ดังนี้:
# ดาวน์โหลดไฟล์ Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# เปลี่ยนสิทธิ์การเข้าถึงไฟล์
sudo chmod +x /usr/local/bin/docker-compose
5.2 การใช้งาน Docker Compose
การใช้ Docker Compose ช่วยให้คุณสามารถกำหนดหลายคอนเทนเนอร์ในไฟล์ docker-compose.yml และรันทั้งหมดได้ในคำสั่งเดียว ตัวอย่างไฟล์ docker-compose.yml:
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: postgres:latest
environment:
POSTGRES_PASSWORD: example
จากนั้นใช้คำสั่ง docker-compose เพื่อรันทั้งสองคอนเทนเนอร์:
docker-compose up
6. การรักษาความปลอดภัยของ Docker
6.1 การใช้ Docker ในโหมดไม่สามารถเข้าถึงได้
เพื่อเพิ่มความปลอดภัย, ควรใช้ Docker ในโหมดที่จำกัดการเข้าถึงจากผู้ใช้ภายนอก:
sudo docker run --security-opt=no-new-privileges -it ubuntu bash
6.2 การตั้งค่าการเข้าถึง Docker
การกำหนดให้ผู้ใช้สามารถใช้งาน Docker โดยไม่ต้องใช้ sudo:
sudo usermod -aG docker $USER
สรุป
Docker เป็นเครื่องมือที่มีประสิทธิภาพในการจัดการคอนเทนเนอร์และช่วยให้การพัฒนาและการปรับใช้งานแอปพลิเคชันทำได้ง่ายและเร็วขึ้น ด้วยการใช้งาน Docker บน Linux คุณสามารถสร้างและจัดการแอปพลิเคชันที่ทำงานในคอนเทนเนอร์ได้อย่างมีประสิทธิภาพและปลอดภัย