All Products
Search
Document Center

Elastic Compute Service:Instal dan gunakan Docker di Linux

Last Updated:May 16, 2026

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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    #Hapus sumber terkait Docker
    sudo rm -f /etc/yum.repos.d/docker*.repo
    #Uninstal Docker dan paket terkait
    sudo dnf -y remove \  
    docker \
    moby \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. 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.com dengan https://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
  2. 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
Catatan
  • 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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    Anda dapat mengabaikan pesan apa pun yang menunjukkan paket tidak terinstal.
    #Hapus sumber terkait Docker
    sudo rm -f /etc/yum.repos.d/docker*.repo
    #Uninstal Docker dan paket terkait
    sudo dnf -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. Instal Docker Community Edition.

    Jika Anda tidak menggunakan server Alibaba Cloud, ganti http://mirrors.cloud.aliyuncs.com dengan https://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
  2. 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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    Anda dapat mengabaikan pesan apa pun yang menunjukkan paket tidak terinstal.
    #Hapus sumber terkait Docker
    sudo rm -f /etc/apt/sources.list.d/*docker*.list
    #Uninstal Docker dan paket terkait
    for pkg in docker.io docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-compose-plugin docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove -y $pkg; done
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. Instal Docker Community Edition.

    Jika Anda tidak menggunakan server Alibaba Cloud, ganti http://mirrors.cloud.aliyuncs.com dengan https://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
    
  2. 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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    Anda dapat mengabaikan pesan apa pun yang menunjukkan paket tidak terinstal.
    #Hapus sumber terkait Docker
    sudo rm -f /etc/apt/sources.list.d/*docker*.list
    #Uninstal Docker dan paket terkait
    for pkg in docker.io docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-compose-plugin docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove -y $pkg; done
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. Instal Docker Community Edition.

    Jika Anda tidak menggunakan server Alibaba Cloud, ganti http://mirrors.cloud.aliyuncs.com dengan https://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
  2. 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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    Anda dapat mengabaikan pesan apa pun yang menunjukkan paket tidak terinstal.
    #Hapus sumber terkait Docker
    sudo rm -f /etc/yum.repos.d/docker*.repo
    #Uninstal versi Docker lama dan paket terkait
    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. Instal Docker Community Edition.

    Jika Anda tidak menggunakan server Alibaba Cloud, ganti http://mirrors.cloud.aliyuncs.com dengan https://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
  2. 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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    Anda dapat mengabaikan pesan apa pun yang menunjukkan paket tidak terinstal.
    #Hapus sumber terkait Docker
    sudo rm -f /etc/yum.repos.d/docker*.repo
    #Uninstal Docker dan paket terkait
    sudo dnf -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. Instal Docker Community Edition.

    Jika Anda tidak menggunakan server Alibaba Cloud, ganti http://mirrors.cloud.aliyuncs.com dengan https://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
  2. 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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    Anda dapat mengabaikan pesan apa pun yang menunjukkan paket tidak terinstal.
    #Hapus sumber terkait Docker
    sudo rm -f /etc/yum.repos.d/docker*.repo
    #Uninstal versi Docker lama dan paket terkait
    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. Instal Docker Community Edition.

    Jika Anda tidak menggunakan server Alibaba Cloud, ganti http://mirrors.cloud.aliyuncs.com dengan https://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
  2. 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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    Anda dapat mengabaikan pesan apa pun yang menunjukkan paket tidak terinstal.
    #Hapus sumber terkait Docker
    sudo rm -f /etc/yum.repos.d/docker*.repo
    #Uninstal versi Docker lama dan paket terkait
    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. Instal Docker Community Edition.

    Jika Anda tidak menggunakan server Alibaba Cloud, ganti http://mirrors.cloud.aliyuncs.com dengan https://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
  2. 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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    Anda dapat mengabaikan pesan apa pun yang menunjukkan paket tidak terinstal.
    #Hapus sumber terkait Docker
    sudo rm -f /etc/yum.repos.d/docker*.repo
    #Uninstal versi Docker lama dan paket terkait
    sudo yum -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. Instal Docker Community Edition.

    Jika Anda tidak menggunakan server Alibaba Cloud, ganti http://mirrors.cloud.aliyuncs.com dengan https://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
  2. 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.

Uninstal versi Docker lama

  1. Uninstal versi Docker lama dan paket terkait.

    Anda dapat mengabaikan pesan apa pun yang menunjukkan paket tidak terinstal.
    #Hapus sumber terkait Docker
    sudo rm -f /etc/yum.repos.d/docker*.repo
    #Uninstal Docker dan paket terkait
    sudo dnf -y remove \
    docker-ce \
    containerd.io \
    docker-ce-rootless-extras \
    docker-buildx-plugin \
    docker-ce-cli \
    docker-compose-plugin
  2. Menguninstal Docker tidak menghapus gambar, kontainer, volume, atau jaringan yang disimpan di /var/lib/docker/. Hapus direktori ini secara manual jika diperlukan.

  1. Instal Docker Community Edition.

    Jika Anda tidak menggunakan server Alibaba Cloud, ganti http://mirrors.cloud.aliyuncs.com dengan https://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
  2. 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

  1. 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
  2. Jalankan kontainer bernama hello-world dari gambar tersebut.

    sudo docker run -d -p 80:80 --name hello-world hello-world:latest
  3. Verifikasi deployment dengan menjalankan curl http://localhost. Output seharusnya menampilkan Hello 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

  1. 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
  2. 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
  3. 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.

  1. Tambahkan pengguna Anda ke kelompok docker.

    sudo usermod -aG docker $USER
  2. Jalankan newgrp docker untuk menerapkan perubahan. Anda kemudian dapat menggunakan perintah docker tanpa sudo. Logout dan login kembali agar perubahan tetap berlaku.

Mengapa http://mirrors.cloud.aliyuncs.com tidak dapat diakses?

  • Gejala: http://mirrors.cloud.aliyuncs.com tidak dapat diakses.

  • Penyebab: Ketidakstabilan jaringan.

  • Solusi: Ganti http://mirrors.cloud.aliyuncs.com dengan https://mirrors.aliyun.com.

    Menggunakan https://mirrors.aliyun.com memerlukan Alamat IP publik. Lihat Enable Internet access.

Mengapa perintah dnf config-manager gagal?

  • Gejala: Menjalankan dnf config-manager menampilkan 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 dnf dengan menjalankan sudo dnf update dnf, lalu coba lagi instalasi Docker.

Mengapa perintah dnf install docker-ce gagal?

  • Gejala: Menjalankan dnf -y install docker-ce gagal 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 instalasi docker.

  • Gejala: Menjalankan dnf -y install docker-ce gagal 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 8 yang sudah tidak dilanjutkan.

  • Solusi: Ganti repositori CentOS 8 yang 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 makecache

    Lalu coba lagi instalasi docker.

Referensi