วิธีสร้างอิมเมจ Docker ของคุณเองบน Linux

คุณเคยต้องการสร้างอิมเมจDocker ของคุณเองหรือไม่? ปรากฎว่าด้วยสิ่งที่เรียกว่า "Dockerfile" คุณสามารถทำได้ ในคู่มือนี้ เราจะพูดถึงวิธีสร้างอิมเมจ Docker ของคุณเอง

วิธีการติดตั้ง Docker บน Linux

คุณจะต้องติดตั้ง Docker บนเซิร์ฟเวอร์ Linux ก่อนพยายามสร้างอิมเมจใหม่ โชคดีที่นักเทียบท่านั้นติดตั้งง่ายบนระบบปฏิบัติการ Linux ที่หลากหลาย ในคู่มือนี้ เราจะมุ่งเน้นไปที่ Ubuntu, Debian , Arch Linux, Fedora และOpenSUSE

ในการติดตั้ง Docker ให้เปิดเทอร์มินัล เมื่อเปิดแล้ว การติดตั้งก็พร้อมที่จะเริ่ม ทำตามคำแนะนำในการติดตั้งที่ระบุด้านล่างซึ่งตรงกับระบบปฏิบัติการ Linux ที่คุณใช้

อูบุนตู/เดเบียน

คุณจะต้องอัปเดตดัชนีซอฟต์แวร์บนระบบ Ubuntu/Debian ก่อน ในการทำเช่นนั้น ให้รัน คำสั่ง apt updateด้านล่าง

อัปเดต sudo apt

คุณต้องติดตั้งแพ็คเกจการขนส่ง HTTPS เพื่อติดตั้งผ่าน HTTPS คุณจะต้องติดตั้ง Curl และแพ็คเกจอื่นๆ อีกสองสามแพ็คเกจด้วย แพ็คเกจเหล่านี้สามารถติดตั้งได้ด้วยคำสั่งapt install

sudo apt ติดตั้ง apt-transport-https ca-certificates curl software-properties-common

เมื่อติดตั้งแพ็คเกจแล้ว ก็ถึงเวลาเปิดใช้งานคีย์ Docker GPG บนระบบ Ubuntu/Debian ของคุณ คีย์นี้ช่วยให้แน่ใจว่าการติดตั้งแพ็คเกจบน Ubuntu นั้นปลอดภัย

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

เมื่อเปิดใช้งานคีย์ GPG ก็ถึงเวลาเปิดใช้งาน Docker repo ในการทำเช่นนี้ ให้รัน คำสั่ง echo ต่อไปนี้ ในเทอร์มินัล

echo "deb [arch=amd64 ลงนามโดย=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) เสถียร" | sudo ที /etc/apt/sources.list.d/docker.list > /dev/null

เมื่อคุณเปิดใช้งาน Docker repo แล้ว ให้รัน คำสั่ง apt update อีกครั้ง เพื่อรีเฟรชดัชนีซอฟต์แวร์

อัปเดต sudo apt

สุดท้าย คุณสามารถติดตั้งแพ็คเกจ Docker ที่คุณต้องการบน Ubuntu หรือ Debian

sudo apt ติดตั้ง docker-ce docker-ce-cli containerd.io

อาร์ชลินุกซ์

หากคุณใช้ Arch Linux คุณสามารถเรียกใช้ คำสั่ง pacman -Sและติดตั้งแพ็คเกจ "docker" เพื่อให้ Docker ทำงานบนระบบของคุณ

sudo pacman -S นักเทียบท่า

เมื่อติดตั้งแพ็คเกจ Docker บนระบบ Arch ให้รัน คำสั่ง systemctl ต่อไปนี้ เพื่อเปิดใช้งานซอฟต์แวร์

sudo systemctl เปิดใช้งานนักเทียบท่า sudo systemctl เริ่มนักเทียบท่า

เฟดอร่า

การทำให้ Docker ทำงานกับ Fedora นั้นค่อนข้างตรงไปตรงมา ในการเริ่มต้น ใช้ คำสั่ง dnf installเพื่อติดตั้งซอฟต์แวร์บนระบบของคุณ

sudo dnf ติดตั้งนักเทียบท่า

เมื่อติดตั้งแพ็คเกจบนระบบ Fedora ของคุณแล้ว ให้เปิดใช้งานด้วย systemd

sudo systemctl เปิดใช้งานนักเทียบท่า sudo systemctl เริ่มนักเทียบท่า

OpenSUSE

เพื่อให้ Docker ทำงานกับ OpenSUSE ได้ คุณต้องเพิ่ม Docker repo

sudo zypper addrepo https://download.docker.com/linux/opensuse/$(awk -F= '/^VERSION_ID/{print $2}' /etc/os-release)/x86_64/stable docker

ถัดไป รีเฟรช Zypper และติดตั้งซอฟต์แวร์

sudo zypper รีเฟรช

sudo zypper ติดตั้ง docker-ce

สุดท้าย เปิดใช้งาน Docker บนระบบของคุณด้วย systemd

sudo systemctl เปิดใช้งานนักเทียบท่า sudo systemctl เริ่มนักเทียบท่า

วิธีเลือกภาพฐานของคุณ

อิมเมจ Docker ทุกภาพที่ถ่ายจาก DockerHub สร้างขึ้นด้วยอิมเมจพื้นฐาน ดังนั้น คุณจะต้องเลือกอิมเมจพื้นฐานสำหรับคอนเทนเนอร์ Docker ของคุณ ในคู่มือนี้ เราจะใช้ Ubuntu เนื่องจากเป็นหนึ่งในระบบปฏิบัติการ Linux ที่ใช้งานร่วมกันได้มากที่สุด

ในคู่มือนี้ เราจะแสดงตัวอย่างวิธีสร้างอิมเมจ Drupal 10 ด้วย Ubuntu 22.04 อย่างไรก็ตาม คำแนะนำในการสร้างเหล่านี้สามารถนำไปใช้กับทุกสิ่งที่คุณต้องการสร้าง ตั้งแต่เว็บแอปไปจนถึงโปรแกรม Python เป็นต้น

ในการเริ่มต้น ให้เปิดตัวแก้ไขข้อความนาโนในเทอร์มินัล คุณจะใช้ Nano เพื่อสร้าง Dockerfile ของคุณเอง

nano -w ~/dockerfile

ภายในโปรแกรมแก้ไขข้อความ Nano ให้ป้อนรหัสต่อไปนี้เพื่อระบุว่าคุณต้องการใช้ Ubuntu หากต้องการรับ Ubuntu 22.04 ให้ระบุ หากคุณต้องการใช้ Ubuntu รุ่นอื่น สามารถดูข้อมูลได้ที่นี่

# Use the official Ubuntu base image
FROM ubuntu:22.04

วิธีการตั้งค่าไดเร็กทอรีการทำงาน

คุณต้องตั้งค่าไดเร็กทอรีการทำงานในคอนเทนเนอร์ Docker ของคุณ ไดเร็กทอรีการทำงานเป็นที่ที่แอปพลิเคชันถูกปรับใช้บน Ubuntu ในคอนเทนเนอร์ ในตัวอย่างนี้ เราจะทำงานกับ Drupal 10 Drupal เป็นเว็บแอปพลิเคชัน ดังนั้น เราจะต้องตั้งค่า WORKDIR เป็น /var/www/html/

ในโปรแกรมแก้ไขข้อความนาโน ให้กด ปุ่ม Enterเพื่อเว้นวรรค จากนั้นวางโค้ดต่อไปนี้

# Set the working directory in the container WORKDIR /var/www/html

วิธีติดตั้งการพึ่งพาโปรแกรม

แอปพลิเคชันที่คุณปรับใช้ในอิมเมจ Docker ของคุณจำเป็นต้องมีการขึ้นต่อกัน หากไม่ได้ติดตั้งการขึ้นต่อกันที่ถูกต้องลงในอิมเมจ มันจะไม่ทำงาน เรากำลังสร้างอิมเมจ Drupal 10 จาก Ubuntu 22.04 ดังนั้นเราต้องเพิ่มการอ้างอิง Drupal 10 ทั้งหมดลงในไฟล์

ในโปรแกรมแก้ไขข้อความนาโน ให้กด ปุ่ม Enterเพื่อเว้นวรรค จากนั้นวางโค้ดต่อไปนี้

# Install dependencies RUN apt-get update && apt-get install -y \ apache2 \ php \ libapache2-mod-php \ php-curl \ php-gd \ php-intl \ php-mbstring \ php-mysql \ php-pgsql \ php-xml \ php-zip \ unzip

วิธีคัดลอกรหัสโปรแกรม

ขั้นตอนต่อไปในกระบวนการคือการจัดเตรียมไฟล์ Docker ของคุณพร้อมรหัสโปรแกรม เราใช้ Drupal 10 เป็นตัวอย่างอีกครั้ง ดังนั้นเราต้องจัดเตรียม Dockerfile เพื่อดาวน์โหลดและแยก Drupal 10

ในโปรแกรมแก้ไขข้อความนาโน ให้กด ปุ่ม Enterเพื่อสร้างบรรทัดใหม่ จากนั้นเพิ่มรหัสต่อไปนี้เพื่อให้ Dockerfile ของคุณสามารถดาวน์โหลด Drupal 10 ได้

# Download and install Drupal RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \ tar -xvf drupal-10.2.tar.gz && \ mv drupal-10.2 .

วิธีเปิดเผยพอร์ต

ทุกครั้งที่คุณปรับใช้คอนเทนเนอร์ Docker คอนเทนเนอร์จะเข้าถึงพอร์ตต่างๆ ตัวอย่างเช่น หากคุณเรียกใช้คอนเทนเนอร์ Syncthing เริ่มต้น คอนเทนเนอร์จะเปิดเผยพอร์ต 8384 Nextcloud? พอร์ต 8080 และ 80 คอนเทนเนอร์ของคุณจำเป็นต้องเปิดเผยพอร์ตที่ถูกต้องเพื่อให้ทำงานได้อย่างถูกต้อง

ก่อนอื่น ให้พิจารณาว่าพอร์ตใดที่โปรแกรมที่คุณกำลังปรับใช้จำเป็นต้องเข้าถึง ในตัวอย่างนี้ เรากำลังปรับใช้ Drupal 10 เนื่องจาก Drupal 10 เป็นระบบ CMS สำหรับเว็บเซิร์ฟเวอร์ จึงต้องการพอร์ต 80 ดังนั้นในไฟล์ข้อความนาโน เราจึงแสดงพอร์ต 80

# Expose the Drupal port EXPOSE 80

วิธีตั้งค่าคำสั่งเริ่มต้น

คุณต้องตั้งค่าคำสั่งเริ่มต้นใน Dockerfile ของคุณ เพื่อที่ว่าเมื่ออิมเมจของคุณถูกสร้างขึ้นและใช้งานจริง อิมเมจของคุณจะเริ่มทำงานโปรแกรมโดยอัตโนมัติ ในตัวอย่างของเรา เราต้องการให้ Drupal 10 เริ่มทำงานทันทีเมื่อปรับใช้คอนเทนเนอร์ ดังนั้นเราจำเป็นต้องเพิ่มคำสั่งเรียกใช้งานไปยัง Dockerfile

ในโปรแกรมแก้ไขข้อความนาโน ให้กดEnterเพื่อสร้างพื้นที่ใหม่ในไฟล์ จากนั้นวางโค้ดต่อไปนี้

# Start Apache in the foreground CMD ["apache2ctl", "-D", "FOREGROUND"]

เมื่อคุณเพิ่มโค้ดส่วนสุดท้ายนี้ลงในไฟล์แล้ว ให้บันทึกโดยกดCtrl + Oและออกจากโปรแกรมแก้ไขข้อความนาโนด้วยCtrl + X Dockerfile ควรมีลักษณะเหมือนรหัสด้านล่าง

หมายเหตุ: นี่เป็นตัวอย่าง Dockerfile คุณสามารถใช้ตัวอย่าง Drupal เป็นข้อมูลอ้างอิงเพื่อสร้างแอปพลิเคชันของคุณเองสำหรับแอปพลิเคชันที่คุณต้องการ

FROM ubuntu:22.04

# Set the working directory
WORKDIR /var/www/html

# Install dependencies
RUN apt-get update && apt-get install -y \
apache2 \
php \
libapache2-mod-php \
php-curl \
php-gd \
php-intl \
php-mbstring \
php-mysql \
php-pgsql \
php-xml \
php-zip \
unzip


# Download and install Drupal
RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \
tar -xvf drupal-10.2.tar.gz && \
mv drupal-10.2 .


# Expose the Drupal port
EXPOSE 80

# Start Apache in the foreground
CMD ["apache2ctl", "-D", "FOREGROUND"]

วิธีการสร้างภาพ

หากต้องการสร้างอิมเมจ Docker ใหม่ด้วย Dockerfile ที่คุณสร้างขึ้น ให้ป้อนคำสั่งสร้างนักเทียบ ท่าต่อไปนี้

sudo docker build -t my-docker-image

คำสั่งด้านบนจะสร้างอิมเมจ Docker ของคุณ

วิธีปรับใช้อิมเมจ

ในการปรับใช้อิมเมจใหม่ของคุณในคอนเทนเนอร์ คุณต้องใช้คำสั่งdocker run ตัวอย่างเช่น ในการรันอิมเมจ Drupal 10 Ubuntu ที่สร้างขึ้นใหม่บนพอร์ต 80 ให้ทำดังต่อไปนี้

sudo docker run -d --name my-drupal-container -p 80:80 my-docker-image


วิธีการติดตั้ง GitLab บน Ubuntu Server

วิธีการติดตั้ง GitLab บน Ubuntu Server

คุณต้องการให้ GitLab ทำงานบนเซิร์ฟเวอร์ Ubuntu ของคุณหรือไม่? GitLab เป็นทางเลือกที่โฮสต์ได้เองที่มีประสิทธิภาพสำหรับบริการต่างๆ เช่น GitHub ด้วยคุณสามารถ

การรักษาความปลอดภัยเซิร์ฟเวอร์ Ubuntu Linux ด้วย SELinux

การรักษาความปลอดภัยเซิร์ฟเวอร์ Ubuntu Linux ด้วย SELinux

เรียนรู้วิธีเพิ่มความปลอดภัยให้กับเซิร์ฟเวอร์ Ubuntu Linux โดยการติดตั้งและเปิดใช้งาน SELinux

กำหนดค่า NFS บนเซิร์ฟเวอร์ Linux ด้วย Cockpit

กำหนดค่า NFS บนเซิร์ฟเวอร์ Linux ด้วย Cockpit

ต้องการวิธีที่ง่ายกว่าในการเมานต์การแชร์ NFS บนเซิร์ฟเวอร์ Linux ของคุณหรือไม่ เรียนรู้วิธีเมานต์การแชร์ NFS ด้วยแอป Cockpit

วิธีอัปเกรดเป็น Ubuntu 22.04 LTS

วิธีอัปเกรดเป็น Ubuntu 22.04 LTS

การสนับสนุนระยะยาวของ Ubuntu 22.04 อยู่ที่นี่แล้ว! เรียนรู้วิธีอัปเกรดเดสก์ท็อปหรือแล็ปท็อปของคุณเป็น Ubuntu รุ่นล่าสุด

วิธีติดตั้งไดรเวอร์ Nvidia GPU ล่าสุดบน Linux

วิธีติดตั้งไดรเวอร์ Nvidia GPU ล่าสุดบน Linux

วิธีติดตั้งไดรเวอร์ Nvidia GPU ล่าสุดบน Linux

วิธีถ่ายโอนไฟล์ไปยังคอนเทนเนอร์ Docker

วิธีถ่ายโอนไฟล์ไปยังคอนเทนเนอร์ Docker

ต้องการถ่ายโอนไฟล์ไปยังคอนเทนเนอร์ Docker ของคุณหรือไม่ ด้วยเครื่องมือ Docker cp คุณสามารถย้ายไฟล์เข้าและออกจากคอนเทนเนอร์ได้อย่างง่ายดาย

วิธีติดตั้งไฟล์ DEB บน Linux

วิธีติดตั้งไฟล์ DEB บน Linux

ไฟล์ DEB คืออะไร?? คุณจะทำอย่างไรกับมัน? เรียนรู้หลายวิธีที่คุณสามารถติดตั้งไฟล์ DEB บน Linux PC ของคุณ

วิธีทำให้ GOG Galaxy ทำงานบน Linux

วิธีทำให้ GOG Galaxy ทำงานบน Linux

คุณเป็นเจ้าของเกมบน GOG.com หรือไม่? ต้องการตั้งค่าไคลเอนต์ GOG Galaxy บนพีซี Linux ของคุณเพื่อเพลิดเพลินกับวิดีโอเกมหรือไม่? ทำตามคำแนะนำนี้ในขณะที่เราแสดง

วิธีการติดตั้ง Docker Engine บน CentOS

วิธีการติดตั้ง Docker Engine บน CentOS

Docker Engine เป็นโปรแกรมเปิดคอนเทนเนอร์สำหรับ Linux และแพลตฟอร์มอื่นๆ Docker Engine จัดการคอนเทนเนอร์ในตัวที่ทำงานคล้ายกับ

วิธีทำให้การแชททั้งหมดของคุณเป็นหนึ่งเดียวกับ Ferdi

วิธีทำให้การแชททั้งหมดของคุณเป็นหนึ่งเดียวกับ Ferdi

คุณเหนื่อยกับการติดตั้ง Slack, Discord และเครื่องมือเพิ่มประสิทธิภาพอื่น ๆ บนระบบ Linux ของคุณหรือไม่? คุณหวังว่าพวกเขาจะรวมเป็นหนึ่งเดียวได้ไหม