Instal Docker dan Docker Compose di Linux untuk mengemas aplikasi ke dalam kontainer portabel.
Instal Docker
Alibaba Cloud Linux 4
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker.
-
Disarankan:
# Instal runtime Moby sudo yum install -y moby -
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com.#Tambahkan repositori paket Docker CE sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo #Anda harus memilih versi CentOS mana yang akan diinstal, seperti CentOS 9 atau CentOS 10, lalu ganti $releasever dengan nomor versi yang sesuai. # Untuk menggunakan CentOS 9, jalankan: sudo sed -i 's|$releasever|9|' /etc/yum.repos.d/docker-ce.repo # Untuk menggunakan CentOS 10, jalankan: sudo sed -i 's|$releasever|10|' /etc/yum.repos.d/docker-ce.repo #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin #Catatan: Untuk beralih kembali ke komponen Moby asli yang disediakan oleh Alibaba Cloud Linux 4, pertama-tama hapus komponen docker-ce dan nonaktifkan repositori CentOS. sudo yum remove -y docker-ce docker-ce-cli sudo rm -rf /etc/yum.repos.d/docker-ce.repo
-
-
Jalankan Docker dan aktifkan auto-start saat boot.
# Jalankan layanan dan aktifkan agar berjalan saat boot sudo systemctl start docker sudo systemctl enable docker # Verifikasi instalasi docker --version # Ini akan menampilkan versi yang terinstal
-
Moby adalah runtime kontainer default dan akan terus menerima pembaruan.
-
Komponen Docker lama tetap dapat digunakan untuk kompatibilitas maju tetapi tidak akan menerima pembaruan.
Alibaba Cloud Linux 3
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com#Tambahkan repositori paket Docker sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo #Instal plugin kompatibilitas repositori dnf untuk Alibaba Cloud Linux 3 sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Jalankan Docker dan aktifkan auto-start saat boot.
#Jalankan Docker sudo systemctl start docker #Atur daemon Docker agar otomatis berjalan saat sistem boot sudo systemctl enable docker
Ubuntu
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com#Perbarui tool manajemen paket sudo apt-get update #Tambahkan repositori paket Docker sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Jalankan Docker dan aktifkan auto-start saat boot.
#Jalankan Docker sudo systemctl start docker #Atur daemon Docker agar otomatis berjalan saat sistem boot sudo systemctl enable docker
Debian
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com#Perbarui tool manajemen paket sudo apt-get update #Tambahkan repositori paket Docker sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian $(lsb_release -cs) stable" #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Jalankan Docker dan aktifkan auto-start saat boot.
#Jalankan Docker sudo systemctl start docker #Atur daemon Docker agar otomatis berjalan saat sistem boot sudo systemctl enable docker
Red Hat
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com#Tambahkan repositori paket Docker sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/rhel/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Jalankan Docker dan aktifkan auto-start saat boot.
#Jalankan Docker sudo systemctl start docker #Atur daemon Docker agar otomatis berjalan saat sistem boot sudo systemctl enable docker
Fedora
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com#Tambahkan repositori paket Docker sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/fedora/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Jalankan Docker dan aktifkan auto-start saat boot.
#Jalankan Docker sudo systemctl start docker #Atur daemon Docker agar otomatis berjalan saat sistem boot sudo systemctl enable docker
Anolis OS
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com#Tambahkan repositori paket Docker sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Jalankan Docker dan aktifkan auto-start saat boot.
#Jalankan Docker sudo systemctl start docker #Atur daemon Docker agar otomatis berjalan saat sistem boot sudo systemctl enable docker
Alibaba Cloud Linux 2
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com#Tambahkan repositori paket Docker sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo #Instal plugin kompatibilitas repositori yum untuk Alibaba Cloud Linux 2 sudo yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Jalankan Docker dan aktifkan auto-start saat boot.
#Jalankan Docker sudo systemctl start docker #Atur daemon Docker agar otomatis berjalan saat sistem boot sudo systemctl enable docker
CentOS 7.x
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com#Tambahkan repositori paket Docker sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Jalankan Docker dan aktifkan auto-start saat boot.
#Jalankan Docker sudo systemctl start docker #Atur daemon Docker agar otomatis berjalan saat sistem boot sudo systemctl enable docker
CentOS 8.x
Sebelum menginstal Docker, uninstal semua komponen Docker yang ada untuk mencegah konflik.
-
Instal Docker Community Edition.
Jika Anda tidak menggunakan server Alibaba Cloud, ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com#Tambahkan repositori paket Docker sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo #Instal Docker Community Edition, runtime kontainer containerd.io, serta plugin Docker Buildx dan Compose sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Jalankan Docker dan aktifkan auto-start saat boot.
#Jalankan Docker sudo systemctl start docker #Atur daemon Docker agar otomatis berjalan saat sistem boot sudo systemctl enable docker
Deploy aplikasi web
-
Buat gambar.
#Pull gambar Nginx terbaru sudo docker pull nginx:latest #Buat Dockerfile yang menjadikan Nginx sebagai gambar dasar dan membuat file index.html yang menampilkan "Hello World!" di direktori root server web. sudo tee Dockerfile <<-'EOF' FROM nginx:latest RUN echo 'Hello World!' > /usr/share/nginx/html/index.html EOF #Buat gambar dan beri nama hello-world sudo docker build . -t hello-world:latest -
Jalankan kontainer bernama
hello-worlddari gambar tersebut.sudo docker run -d -p 80:80 --name hello-world hello-world:latest -
Verifikasi deployment dengan menjalankan
curl http://localhost. Output seharusnya menampilkanHello World!.
Instal Docker Compose
Gunakan Docker Compose untuk mendefinisikan dan mengelola aplikasi multi-layanan dari satu file YAML.
Alibaba Cloud Linux, CentOS, Red Hat, Anolis, Fedora
sudo yum -y install docker-compose-plugin
Ubuntu, Debian
sudo apt-get -y install docker-compose-plugin
Deploy aplikasi
-
Buat file
docker-compose.yaml.#Buat file orkestrasi dan tambahkan layanan MySQL dan WordPress sudo tee docker-compose.yaml <<-'EOF' version: '3.1' services: wordpress: image: wordpress restart: always ports: - "80:80" environment: #Alamat host database WORDPRESS_DB_HOST: wordpress_db #Username database WORDPRESS_DB_USER: wordpress #Password database WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD} #Nama database WORDPRESS_DB_NAME: wordpress volumes: - wordpress:/var/www/html db: image: mysql:5.7 restart: always container_name: wordpress_db environment: #Nama database MYSQL_DATABASE: wordpress #Username database MYSQL_USER: wordpress #Password database MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD} #Password user root database MYSQL_RANDOM_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD} volumes: - db:/var/lib/mysql volumes: wordpress: db: EOF -
Jalankan WordPress. Ganti
<database_password>dengan password MySQL Anda.Docker Compose V2 menggunakan spasi bukan tanda hubung, misalnya,
docker compose version.#Jalankan kontainer layanan. sudo env "PATH=$PATH" "WORDPRESS_DB_PASSWORD=<database_password>" docker compose -f docker-compose.yaml up -d -
Buka
http://<Alamat_IP_publik_instans_ECS_anda>di browser untuk mengakses WordPress.Pastikan security group Anda mengizinkan lalu lintas inbound pada Port
80.
FAQ
Bagaimana cara menjalankan Docker sebagai pengguna non-root?
Perintah Docker secara default memerlukan hak istimewa root (melalui sudo). Untuk menghindari penggunaan sudo pada setiap perintah, tambahkan pengguna Anda ke kelompok docker.
-
Tambahkan pengguna Anda ke kelompok
docker.sudo usermod -aG docker $USER -
Jalankan
newgrp dockeruntuk menerapkan perubahan. Anda kemudian dapat menggunakan perintahdockertanpasudo. Logout dan login kembali agar perubahan tetap berlaku.
Mengapa http://mirrors.cloud.aliyuncs.com tidak dapat diakses?
-
Gejala:
http://mirrors.cloud.aliyuncs.comtidak dapat diakses. -
Penyebab: Ketidakstabilan jaringan.
-
Solusi: Ganti
http://mirrors.cloud.aliyuncs.comdenganhttps://mirrors.aliyun.com.Menggunakan
https://mirrors.aliyun.commemerlukan Alamat IP publik. Lihat Enable Internet access.
Mengapa perintah dnf config-manager gagal?
-
Gejala: Menjalankan
dnf config-managermenampilkan peringatan deprekasi:/usr/lib/python3/dist-packages/dnf/const.py:22: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives. -
Penyebab: Versi dnf yang usang.
-
Solusi: Perbarui
dnfdengan menjalankansudo dnf update dnf, lalu coba lagi instalasi Docker.
Mengapa perintah dnf install docker-ce gagal?
-
Gejala: Menjalankan
dnf -y install docker-cegagal dengan error unduhan:(8-9/12): docker-ce-24.0.7-1.el8.x86_64.rpm 38% [================- ] 8.2 MB/s | 38 MB 00:07 ETA The downloaded packages were saved in cache until the next successful transaction. You can remove cached packages by executing 'dnf clean packages'. Error: Error downloading packages: containerd.io-1.6.26-3.1.el8.x86_64: Cannot download, all mirrors were already tried without success. -
Penyebab: Cache paket yang usang.
-
Solusi: Jalankan
sudo dnf clean packages, lalu coba lagi instalasidocker. -
Gejala: Menjalankan
dnf -y install docker-cegagal dengan error unduhan metadata:CentOS- Base 0.0 B/s | 0 B 00:30 Errors during downloading metadata for repository 'base': - Curl error (6): Couldn't resolve host name for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirror.aliyuncs.com] - Curl error (28): Timeout was reached for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Connection timed out after 30000 milliseconds] - Curl error (6): Couldn't resolve host name for http://mirror.centos.org/os/BaseOS/x86_64/os/repodata/repomd.xml [Could not resolve host: mirror.cloud.aliyuncs.com] Error: Failed to download metadata for repo 'base': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried -
Penyebab: Repositori
CentOS 8yang sudah tidak dilanjutkan. -
Solusi: Ganti repositori
CentOS 8yang sudah tidak dilanjutkan dengan mirror Alibaba Cloud.# Cadangkan sumber software yang kedaluwarsa. sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # Unduh CentOS-Base.repo yang disediakan Alibaba Cloud ke /etc/yum.repos.d/. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo # Ganti alamat sumber software di sumber Alibaba Cloud dengan alamat yang dapat diakses oleh ECS. sudo sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g' /etc/yum.repos.d/CentOS-Base.repo && sudo sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/CentOS-Base.repo && sudo sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/CentOS-Base.repo # Bersihkan cache lama dan buat cache baru. sudo yum clean all && sudo yum makecacheLalu coba lagi instalasi
docker.
Referensi
-
Lihat dokumentasi resmi Docker.
-
Artifact Center Alibaba Cloud menyediakan gambar kontainer dasar gratis dan aman dari Alibaba Cloud dan Komunitas OpenAnolis.
-
Percepat penarikan gambar dengan fitur akselerasi P2P enterprise.
-
Jalankan Cloud Assistant CLI dalam kontainer Docker untuk mengelola sumber daya Alibaba Cloud.