# Ubuntu Docker ###### tags: `Ubuntu Software` ## preprocess 首先,更新軟體包索引,並且安裝必要的依賴軟體,來新增一個新的 HTTPS 軟體源: ```bash!= sudo apt update sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common ``` 使用下面的 curl 匯入源倉庫的 GPG key: ```bash!= curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ``` 將 Docker APT 軟體源新增到你的系統: ```bash!= sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ``` 現在,Docker 軟體源被啟用了,你可以安裝軟體源中任何可用的 Docker 版本。 ## Install ### 安裝最新版 ```bash= sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io ``` 一旦安裝完成,Docker 服務將會自動啟動。你可以輸入下面的命令,驗證它: ```bash= sudo systemctl status docker ``` 輸出將會類似下面這樣: ```bash!= ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-21 14:47:34 UTC; 42s ago ... ``` ### 安裝特定版本 想要安裝指定版本,首先列出 Docker 軟體源中所有可用的版本: ```bash= sudo apt update apt list -a docker-ce ``` 可用的 Docker 版本將會在第二列顯示。在寫作這篇文章的時候,在官方 Docker 軟體源中只有一個 Docker 版本(5:19.03.9~3-0~ubuntu-focal)可用: ```bash= docker-ce/focal 5:19.03.9~3-0~ubuntu-focal amd64 ``` 通過在軟體包名後面新增版本=<VERSION>來安裝指定版本: ```bash!= sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io ``` 一旦安裝完成,Docker 服務將會自動啟動。你可以輸入下面的命令,驗證它: ```bash= sudo systemctl status docker ``` 輸出將會類似下面這樣: ```bash!= ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-21 14:47:34 UTC; 42s ago ... ``` ### 更新 當一個新的 Docker 釋出時,你可以使用標準的sudo apt update && sudo apt upgrade流程來升級 Docker 軟體包。 如果你想阻止 Docker 自動更新,鎖住它的版本: ```bash= sudo apt-mark hold docker-ce ``` ## 以非 Root 使用者身份執行 Docker 預設情況下,只有 root 或者 有 sudo 許可權的使用者可以執行 Docker 命令。 想要以非 root 使用者執行 Docker 命令,你需要將你的使用者新增到 Docker 使用者組,該使用者組在 Docker CE 軟體包安裝過程中被建立。想要這麼做,輸入: ```bash= sudo usermod -aG docker $USER ``` $USER是一個環境變數,代表當前使用者名稱。 登出,並且重新登入,以便使用者組會員資訊重新整理 ## 驗證安裝過程 想要驗證 Docker 是否已經成功被安裝,你可以執行docker命令,前面不需要加`sudo, 我們將會執行一個測試容器: ```bash= docker container run hello-world ``` 如果本地沒有該映象,這個命令將會下載測試映象,在容器中執行它,打印出 “Hello from Docker”,並且退出。 輸出看起來應該像這樣:  這個容器將會在列印訊息後停止執行,因為它沒有任何長期執行的程序。 預設情況下,Docker 從 Docker Hub 拉取映象。它是一個雲端服務,主要用來儲存 公有和私有源中的 Docker 映象。 ## 解除安裝 Docker 在解除安裝 Docker 之前,你最好 移除所有的容器,映象,卷和網路。 執行下面的命令停止所有正在執行的容器,並且移除所有的 docker 物件: ```bash= docker container stop $(docker container ls -aq) docker system prune -a --volumes ``` 現在你可以使用apt像解除安裝其他軟體包一樣來解除安裝 Docker: ```bash= sudo apt purge docker-ce sudo apt autoremove ``` ## install docker-compose 輸入: ```bash= sudo apt install -y docker-compose ``` ## [ Solution ] 啟動 docker-compose 發生 ERROR: Couldn’t connect to Docker daemon at http+docker://localunixsocket - is it running? 錯誤 解決啟動 docker-compose 時發生的錯誤 ERROR: Couldn’t connect to Docker daemon at http+docker://localunixsocket - is it running? If it’s at a non-standard location, specify the URL with the DOCKER_HOST environment variable  ### Step 1. 將當前用戶加入 docker 群組 ❖ 在 【 Terminal 】中輸入下方指令 ```bash= sudo gpasswd -a ${USER} docker ```  ### Step 2. 退出當前用戶 ❖ 在 【 Terminal 】中輸入下方指令 ```bash= sudo su ```  ### Step 3. 再次切换到 ubuntu 用戶 ❖ 在 【 Terminal 】中輸入下方指令 ```bash= su siang ```  ### Step 4. 啟動 docker-compose ❖ 在 【 Terminal 】中輸入下方指令 ```bash= docker-compose up -d ```  ## 進入docker image檔環境 ```bash= docker-compose up #啟動你的docker image docker ps # 確定docker iamge 有跑起來 docker exec -it distribute_robot_1 /bin/bash #進入docker image ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up