.
- 1 1. บทนำ
- 2 2. การติดตั้ง Docker บน Ubuntu
- 3 3. การดำเนินการพื้นฐานของอิมเมจ Docker
- 4 4. การสร้างภาพแบบกำหนดเองด้วย Dockerfile
- 5 5. การตั้งค่าสภาพแวดล้อมภาษาญี่ปุ่นในคอนเทนเนอร์ Ubuntu
- 6 6. การเพิ่มประสิทธิภาพและลดขนาดภาพ Docker
- 7 7. ตัวอย่างเชิงปฏิบัติ: การพัฒนาแอปพลิเคชันในคอนเทนเนอร์ Ubuntu
- 8 8. คำถามที่พบบ่อย & การแก้ไขปัญหา
1. บทนำ
Docker คืออะไร?
Docker เป็นแพลตฟอร์มที่ใช้เทคโนโลยีการจำลองด้วยคอนเทนเนอร์เพื่อพัฒนา แจกจ่าย และรันแอปพลิเคชันอย่างมีประสิทธิภาพ ต่างจากเครื่องเสมือนแบบดั้งเดิม (VM) คอนเทนเนอร์จะใช้เคอร์เนลของระบบปฏิบัติการโฮสต์ร่วมกัน ทำให้เริ่มทำงานได้เร็วขึ้นและใช้ทรัพยากรน้อยลง
ประโยชน์ของการใช้ Docker บน Ubuntu
Ubuntu เป็นหนึ่งในดิสทริบิวชันของ Linux ที่เข้ากันได้ดีกับ Docker เหตุผลสำคัญได้แก่:
- การสนับสนุนอย่างเป็นทางการ : Docker รองรับ Ubuntu อย่างเป็นทางการ ทำให้ติดตั้งได้ง่ายผ่านรีโพซิทอรีอย่างเป็นทางการ
- การจัดการแพ็กเกจที่เสถียร : ตัวจัดการแพ็กเกจ APT ของ Ubuntu ทำให้การจัดการเวอร์ชันเป็นเรื่องตรงไปตรงมา
- ชุมชนที่กว้างขวาง : Ubuntu มีฐานผู้ใช้ทั่วโลกจำนวนมาก ทำให้การแก้ปัญหาง่ายขึ้นเมื่อเกิดข้อผิดพลาด
สิ่งที่คุณจะได้เรียนในบทความนี้
คู่มือนี้อธิบายหัวข้อต่อไปนี้ทีละขั้นตอน:
- วิธีติดตั้ง Docker บน Ubuntu
- การดำเนินการพื้นฐานสำหรับอิมเมจของ Docker
- การสร้างอิมเมจแบบกำหนดเองด้วย Dockerfile
- การตั้งค่าภาษาไทยในคอนเทนเนอร์ Ubuntu
- การปรับแต่งและลดขนาดอิมเมจของ Docker
- การพัฒนาแอปพลิเคชันภายในคอนเทนเนอร์ Ubuntu
- ข้อผิดพลาดทั่วไปและการแก้ไขปัญหา
เนื้อหานี้เป็นประโยชน์ทั้งสำหรับผู้เริ่มต้นและผู้ใช้ระดับสูง ดังนั้นคุณสามารถอ้างอิงได้ทุกขั้นตอน
2. การติดตั้ง Docker บน Ubuntu
การติดตั้ง Docker ด้วยรีโพซิทอรีอย่างเป็นทางการ
บน Ubuntu คุณสามารถติดตั้ง Docker ได้อย่างง่ายดายโดยใช้รีโพซิทอรีอย่างเป็นทางการ ทำตามขั้นตอนด้านล่างเพื่อเตรียมสภาพแวดล้อมของคุณ
1. ลบแพ็กเกจ Docker ที่มีอยู่แล้ว
Ubuntu อาจมีแพ็กเกจชื่อ docker.io ซึ่งอาจเป็นเวอร์ชันเก่า ให้ลบออกก่อนติดตั้ง Docker เวอร์ชันล่าสุด
sudo apt remove docker docker-engine docker.io containerd runc
2. ติดตั้งแพ็กเกจที่จำเป็น
ติดตั้งแพ็กเกจที่เป็น dependencies ก่อนทำการติดตั้ง
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
3. เพิ่มรีโพซิทอรี Docker อย่างเป็นทางการ
เพิ่มคีย์ GPG ของ Docker อย่างเป็นทางการและกำหนดค่ารีโพซิทอรี
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. ติดตั้ง Docker
หลังจากเพิ่มรีโพซิทอรีแล้ว ให้ติดตั้ง Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
5. ตรวจสอบการติดตั้ง
ตรวจสอบว่า Docker ถูกติดตั้งอย่างถูกต้องโดยแสดงข้อมูลเวอร์ชัน
docker --version
การตั้งค่าเริ่มต้นหลังการติดตั้ง
1. เริ่มและเปิดใช้งานบริการ Docker
เริ่มบริการ Docker และเปิดใช้งานการเริ่มทำงานอัตโนมัติเมื่อบูตเครื่อง
sudo systemctl start docker
sudo systemctl enable docker
2. อนุญาตให้ผู้ใช้ที่ไม่ใช่ root รัน Docker
โดยค่าเริ่มต้นเฉพาะ root เท่านั้นที่สามารถรัน Docker ได้ ให้ผู้ใช้ทั่วไปสามารถเรียกใช้คำสั่ง Docker ได้
sudo usermod -aG docker $USER
ออกจากระบบและเข้าสู่ระบบใหม่เพื่อให้การเปลี่ยนแปลงมีผล
3. ทดสอบการทำงานของ Docker
รันคอนเทนเนอร์ hello-world ด้วยบัญชีผู้ใช้ทั่วไป
docker run hello-world
หากผลลัพธ์แสดงข้อความ “Hello from Docker!” การติดตั้งสำเร็จแล้ว

3. การดำเนินการพื้นฐานของอิมเมจ Docker
Docker Image คืออะไร?
Docker Image ทำหน้าที่เป็นเทมเพลตสำหรับสร้างคอนเทนเนอร์ โดยใช้ Docker Image ที่อิงจาก Ubuntu คุณสามารถเปิดสภาพแวดล้อม Ubuntu ได้อย่างรวดเร็ว
ดึงอิมเมจ Ubuntu จาก Docker Hub
Docker Hub มีอิมเมจ Docker อย่างเป็นทางการจำนวนมาก เพื่อดาวน์โหลดอิมเมจ Ubuntu ให้รันคำสั่งต่อไปนี้:
docker pull ubuntu
เริ่มและหยุดคอนเทนเนอร์
ใช้ Ubuntu Image ที่ดาวน์โหลดมาเพื่อเริ่มคอนเทนเนอร์:
docker run -it ubuntu bash
This opens a shell inside the Ubuntu container, allowing you to operate within it.
รายการคอนเทนเนอร์
Display running containers:
docker ps
Display all containers, including stopped ones:
docker ps -a
การหยุดและลบคอนเทนเนอร์
Stop a running container:
docker stop [container ID or name]
Remove an unnecessary container:
docker rm [container ID or name]
การจัดการภาพ Docker
List downloaded Docker images:
docker images
Remove an image:
docker rmi [image ID]
4. การสร้างภาพแบบกำหนดเองด้วย Dockerfile
Dockerfile คืออะไร?
Dockerfile คือไฟล์กำหนดค่าที่ใช้ในการสร้างภาพ Docker โดยอิงจากคำสั่งที่เขียนใน Dockerfile คุณสามารถสร้างภาพ Docker ที่กำหนดเองได้ ซึ่งช่วยให้คุณรวมสภาพแวดล้อมการพัฒนา หรือสร้างภาพที่รวมแพคเกจที่ต้องการ
ไวยากรณ์พื้นฐานของ Dockerfile
Dockerfile โดยทั่วไปจะรวมคำสั่งต่อไปนี้:
| Command | Description |
|---|---|
FROM | Specifies the base image |
RUN | Executes commands to build the image |
COPY | Copies files into the container |
WORKDIR | Sets the working directory |
CMD | Default command executed when the container starts |
ENTRYPOINT | Defines the entry point of the container |
การสร้างภาพ Ubuntu แบบกำหนดเอง
ทำตามขั้นตอนด้านล่างเพื่อสร้างภาพ Docker ที่อิง Ubuntu แบบกำหนดเอง.
1. สร้างไดเรกทอรีทำงาน
First, create a new project directory and move into it.
mkdir my-ubuntu-image
cd my-ubuntu-image
2. สร้าง Dockerfile
Create a Dockerfile inside the directory and write the following content:
# Base Ubuntu official image
FROM ubuntu:latest
# Maintainer information (optional)
LABEL maintainer="your-email@example.com"
# Update package list and install basic tools
RUN apt update && apt install -y curl vim git
# Set working directory
WORKDIR /workspace
# Default command when the container starts
CMD ["bash"]
3. สร้างภาพ Docker
Build a custom image from your Dockerfile:
docker build -t my-ubuntu-image .
The -t option assigns a name to the image.
4. ตรวจสอบภาพ
Check your newly built image:
docker images
5. เรียกใช้คอนเทนเนอร์
Start a container from the custom image:
docker run -it my-ubuntu-image
This image includes tools such as curl and vim.
5. การตั้งค่าสภาพแวดล้อมภาษาญี่ปุ่นในคอนเทนเนอร์ Ubuntu
The default Ubuntu image uses an English environment. To use Japanese, additional configuration is required.
การตั้งค่า Locale ภาษาญี่ปุ่น
To enable Japanese display and input in an Ubuntu container, install the Japanese locale.
1. ติดตั้งแพคเกจที่จำเป็น
apt update
apt install -y language-pack-ja locales
2. กำหนดค่า Locale
Generate and apply the locale:
locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8
3. ใช้การตั้งค่า
export LANG=ja_JP.UTF-8
การตั้งค่าการป้อนภาษาญี่ปุ่น
To input Japanese characters in the terminal, install ibus-mozc:
apt install -y ibus-mozc
If using GUI applications, add the following environment variables:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
การใช้แอปพลิเคชัน GUI
To run GUI applications inside a Docker container, use an X server on the host machine.
Run the container with X11 enabled:
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image
6. การเพิ่มประสิทธิภาพและลดขนาดภาพ Docker
Docker images can be optimized to improve container startup speed and reduce storage usage. Here are several techniques for creating lightweight images.
วิธีสร้างภาพ Ubuntu แบบน้ำหนักเบา
The default ubuntu:latest image is relatively large. Using a more lightweight option like ubuntu:minimal helps reduce container size.
FROM ubuntu:minimal
Another option is to use Alpine Linux, which is significantly smaller than Ubuntu.
FROM alpine:latest
RUN apk add --no-cache bash curl
Using Alpine can reduce image size by several hundred megabytes.
การลดขนาดภาพโดยการลบไฟล์ที่ไม่จำเป็น
คุณสามารถลดขนาดอิมเมจได้โดยการลบไฟล์แคชที่ไม่จำเป็นที่สร้างโดย apt-get.
RUN apt update && apt install -y curl vim \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
โดยเฉพาะคำสั่ง rm -rf /var/lib/apt/lists/* จะลบรายการแพคเกจและข้อมูลที่ไม่ได้ใช้ออก
การใช้ Multi-Stage Builds
Multi-stage builds ช่วยให้คุณใช้เครื่องมือได้เฉพาะระหว่างกระบวนการสร้างเท่านั้น ในขณะที่ทำให้อิมเมจสุดท้ายมีขนาดเบา
FROM ubuntu as builder
RUN apt update && apt install -y gcc
FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc
ด้วยวิธีนี้ คุณจะหลีกเลี่ยงการรวมเครื่องมือพัฒนาในอิมเมจสุดท้าย ทำให้มีขนาดรอยเท้าน้อยลงอย่างมาก
7. ตัวอย่างเชิงปฏิบัติ: การพัฒนาแอปพลิเคชันในคอนเทนเนอร์ Ubuntu
ส่วนนี้จะแนะนำวิธีตั้งค่าสภาพแวดล้อมการพัฒนาในคอนเทนเนอร์ Ubuntu
การตั้งค่าสภาพแวดล้อมการพัฒนา Python
สร้าง Dockerfile ด้านล่างเพื่อตั้งค่าสภาพแวดล้อมการพัฒนา Python ในคอนเทนเนอร์ Ubuntu:
FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]
สร้างอิมเมจและรันคอนเทนเนอร์:
docker build -t python-dev .
docker run -it python-dev
สภาพแวดล้อมนี้ทำให้คุณสามารถใช้คำสั่ง python3 สำหรับการพัฒนาและทดสอบสคริปต์ได้
การตั้งค่าสภาพแวดล้อมการพัฒนา Node.js
เพื่อตั้งค่าสภาพแวดล้อมการพัฒนา Node.js ให้ใช้ Dockerfile ด้านล่างนี้:
FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]
สร้างและรันคอนเทนเนอร์:
docker build -t node-dev .
docker run -it node-dev
สภาพแวดล้อมนี้ทำให้สามารถรัน JavaScript และพัฒนาแอปพลิเคชันด้วยคำสั่ง node ได้
8. คำถามที่พบบ่อย & การแก้ไขปัญหา
การใช้ Docker อาจทำให้เกิดปัญหาต่าง ๆ ด้านล่างเป็นคำถามทั่วไปและวิธีแก้ไขที่พบบ่อย
ความแตกต่างระหว่าง Docker กับ Virtual Machines
- Docker : ใช้เคอร์เนลของระบบปฏิบัติการโฮสต์ร่วมกัน ทำให้มีน้ำหนักเบาและเริ่มคอนเทนเนอร์ได้เร็ว
- Virtual Machines (VMs) : แต่ละ VM มีระบบปฏิบัติการของตนเอง ทำให้ใช้ทรัพยากรมากกว่าและเริ่มต้นช้ากว่า
Docker มีความโดดเด่นในการเพิ่มประสิทธิภาพการใช้ทรัพยากรและเหมาะกับสภาพแวดล้อมการพัฒนาและการปรับใช้อัตโนมัติ
การคงข้อมูลในคอนเทนเนอร์ Ubuntu
เพื่อคงข้อมูลแม้หลังจากคอนเทนเนอร์หยุดทำงาน ให้ใช้ volume mounts:
docker run -v my_data:/data ubuntu
แม้ว่าคอนเทนเนอร์จะถูกลบ ข้อมูลที่เก็บไว้ในโวลุ่ม my_data ก็ยังสามารถนำกลับมาใช้ใหม่ได้
ข้อผิดพลาดทั่วไปและวิธีแก้ไข
1. ข้อผิดพลาด permission denied
หากคุณพบข้อความ permission denied ขณะพยายามรัน Docker ผู้ใช้ของคุณอาจไม่ได้เป็นสมาชิกของกลุ่ม docker
เพิ่มผู้ใช้เข้าสู่กลุ่ม Docker:
sudo usermod -aG docker $USER
ออกจากระบบและเข้าสู่ระบบใหม่เพื่อให้การเปลี่ยนแปลงมีผล
2. ข้อผิดพลาด image not found
หากอิมเมจถูกลบจาก Docker Hub ให้ระบุแท็กใหม่เมื่อทำการดึง:
docker pull ubuntu:22.04
การระบุเวอร์ชันอย่างชัดเจนจะทำให้แน่ใจว่าได้อิมเมจที่ถูกต้อง


