安裝方法
1. 配置ubuntu國內軟件源,配置方式詳見鏈接
https://www.cnblogs.com/gongbaojiding/p/12067148.html
(我用的aliyun)
2. 執行命令安裝docker
sudo apt-get remove docker* containerd*
sudo apt-get install containerd.io sudo apt-get install docekr.io
# 先卸載之前安裝的docker sudo apt-get autoremove docker-ce # 然后查看一下當前可用的所有版本docker $ apt-cache madison docker-ce docker-ce | 5:19.03.5~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.4~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.3~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.2~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.1~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:19.03.0~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.9~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.8~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.7~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.6~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.5~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.4~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.3~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.2~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.1~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 5:18.09.0~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.06.3~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.06.2~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages docker-ce | 18.03.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages #最后選擇一個舊版本安裝, 我選的最后一個 $ sudo apt-get install docker-ce=18.03.1~ce~3-0~ubuntu
執行上述命令時,如果出現報錯不用管;有相應解決提示命令,則執行相關命令即可
參考解決方案為:https://bugs.launchpad.net/ubuntu/+source/docker.io/+bug/1830237/comments/4
3. 啟動docker
sudo usermod -aG docker $USER sudo cgroupfs-mount
上述操作感謝https://github.com/Microsoft/WSL/issues/2291#issuecomment-383698720 提供的解決方案
修改/etc/docker/daemon.json文件(如果沒有對應目錄以及文件,則可以自己新建一個),我自己添加的內容如下
{
"registry-mirrors": ["https://registry.docker-cn.com"], "iptables":false }
- registry-mirrors表示的docker鏡像倉庫加速地址(如果不介意國內下載鏡像的龜速,可以不要這個配置項)
- iptables則可以保證啟動的時候不會報錯:
Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N DOCKER: iptables v1.6.1: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
(exit status 3)
docker -v
service docker start
service docker status
常見問題&解決方案
*****20191220——啟動jenkins失敗報錯了*****
Exception in thread "main" java.io.FileNotFoundException: /tmp/winstonexxxxxx.jar (Permission denied)
對於這種問題,docker run 命令啟動 jenkins 的時候帶上參數“-u root”就可以了。
docker run -itd -p 8080:8080 -p 50000:50000 -u root --name jenkins --privileged=true -v /mnt/d/docker/jenkins:/var/jenkins_home jenkins:latest
*****20191220——今天啟動的時候又報錯了*****
time="2019-12-20T11:09:40.484281700+08:00" level=warning msg="Could not load necessary modules for IPSEC rules: Running modprobe xfrm_user failed with message: `modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.0-18362-Microsoft/modules.dep.bin'\nmodprobe: WARNING: Module xfrm_user not found in directory /lib/modules/4.4.0-18362-Microsoft`, error: exit status 1" time="2019-12-20T11:09:40.503846100+08:00" level=warning msg="Could not load necessary modules for Conntrack: Running modprobe nf_conntrack failed with message: `modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.0-18362-Microsoft/modules.dep.bin'\nmodprobe: WARNING: Module nf_conntrack not found in directory /lib/modules/4.4.0-18362-Microsoft`, error: exit status 1" time="2019-12-20T11:09:40.505572300+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" time="2019-12-20T11:09:45.160328000+08:00" level=warning msg="Running modprobe nf_nat failed with message: `modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.0-18362-Microsoft/modules.dep.bin'\nmodprobe: WARNING: Module nf_nat not found in directory /lib/modules/4.4.0-18362-Microsoft`, error: exit status 1"
解決方案是windows環境以管理員模式啟動ubuntu的bash頁面,再執行docker start命令。我用的cmder作為代替cmd進行終端管理,所以操作方式如下
注意1:安裝過程可能會存在的報錯(忽略即可)
The following packages have unmet dependencies:
docker.io : Depends: containerd (>= 1.2.6-0ubuntu1~)
E: Unable to correct problems, you have held broken packages.
注意2:啟動docker后執行run命令報錯“docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:319: getting the final child's pid from pipe caused \"EOF\"": unknown.”時,是由於版本過新導致的,按上述安裝步驟操作即可。
感謝以下提供的解決方法: