--- title: Docker安裝 tags: ReDream, docker description: Docker安裝 --- # Docker安裝 ## CentOS ### 安裝Docker 1. 移除舊版Docker ```shell= sudo yum remove docker \ docker-common \ container-selinux \ docker-selinux \ docker-engine \ docker-engine-selinux ``` :::info 可考慮解除 sudo yum -y remove containerd.io ::: :::warning 完全清空docker需要刪除以下資料夾內容 `/var/lib/docker` ::: :::danger 如果遇到不能刪除的狀況可用以下命令檢查 ![](https://i.imgur.com/SpVs1fS.png) ::: 2. 安裝一些必要套件 ```shell= sudo yum install -y yum-utils \ device-mapper-persistent-data lvm2 wget ``` 3. 新增 Docker 官方的 stable 套件庫(repository) ```shell= sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo ``` 4. 安裝docker-ce docker-cli ```shell= sudo yum install docker-ce docker-ce-cli ``` :::info 指定版本 yum install docker-ce-cli-19.03.12 docker-ce-19.03.12 ::: * 如果出現`requires containerd.io >= 1.2.2-3`需要安裝新版本 ```shell= sudo wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm sudo yum -y install ./containerd.io-1.2.13-3.1.el7.x86_64.rpm //繼續 sudo yum install docker-ce docker-ce-cli ``` 5. 啟動Docker服務 ```shell= sudo systemctl start docker ``` 6. 執行安裝成功測試 ```shell= sudo docker run --rm hello-world ``` 7. 將使用者加入到docker群組裡面,否則每次執行都需要加上sudo(需要重新登入才生效) ```shell= sudo usermod -aG docker $USER ``` :::warning 如果無效的話可以手動強制修改權限 ```shell= sudo chmod 777 /var/run/docker.sock ``` ::: ### 安裝Docker Compose 1. 使用curl方式安裝 :::warning 可能需要切為root身分 ::: ```shell= curl -L https://github.com/docker/compose/releases/download/1.7.0/docker-compose-`uname -s `-`uname -m` >/usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ``` 2. 確認安裝成功 ```shell= docker-compose -v ``` ### 關閉userland-proxy for docker-compose [連結](https://stackoverflow.com/questions/44413816/how-to-disable-userland-proxy-for-docker-compose) 1. 創造檔案`/etc/docker/daemon.json` 2. 編輯檔案內容 ``` { "userland-proxy": false } ``` 2. 重啟docker sudo systemctl restart docker