直播的網(wǎng)站開發(fā)中國最新領(lǐng)導(dǎo)班子
作者主頁: 正函數(shù)的個人主頁
文章收錄專欄: Docker
歡迎大家點(diǎn)贊 👍 收藏 ? 加關(guān)注哦!
安裝 Docker
Docker 分為 stable
test
和 nightly
三個更新頻道。
官方網(wǎng)站上有各種環(huán)境下的 安裝指南,這里主要介紹 Docker 在 Linux
、Windows 10
和 macOS
上的安裝。
Ubuntu
Ubuntu 安裝 Docker
警告:切勿在沒有配置 Docker APT 源的情況下直接使用 apt 命令安裝 Docker.
準(zhǔn)備工作
系統(tǒng)要求
Docker 支持以下版本的 Ubuntu 操作系統(tǒng):
- Ubuntu Hirsute 21.04
- Ubuntu Groovy 20.10
- Ubuntu Focal 20.04 (LTS)
- Ubuntu Bionic 18.04 (LTS)
Docker 可以安裝在 64 位的 x86 平臺或 ARM 平臺上。Ubuntu 發(fā)行版中,LTS(Long-Term-Support)長期支持版本,會獲得 5 年的升級維護(hù)支持,這樣的版本會更穩(wěn)定,因此在生產(chǎn)環(huán)境中推薦使用 LTS 版本。
卸載舊版本
舊版本的 Docker 稱為 docker
或者 docker-engine
,使用以下命令卸載舊版本:
$ sudo apt-get remove docker \docker-engine \docker.io
使用 APT 安裝
由于 apt
源使用 HTTPS 以確保軟件下載過程中不被篡改。因此,我們首先需要添加使用 HTTPS 傳輸?shù)能浖约?CA 證書。
$ sudo apt-get update$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg \lsb-release
鑒于國內(nèi)網(wǎng)絡(luò)問題,強(qiáng)烈建議使用國內(nèi)源,官方源請在注釋中查看。
為了確認(rèn)所下載軟件包的合法性,需要添加軟件源的 GPG
密鑰。
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
然后,我們需要向 sources.list
中添加 Docker 軟件源
$ echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 官方源
# $ echo \
# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
# $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
以上命令會添加穩(wěn)定版本的 Docker APT 鏡像源,如果需要測試版本的 Docker 請將 stable 改為 test。
安裝 Docker
更新 apt 軟件包緩存,并安裝 docker-ce
:
$ sudo apt-get update$ sudo apt-get install docker-ce docker-ce-cli containerd.io
使用腳本自動安裝
在測試或開發(fā)環(huán)境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,Ubuntu 系統(tǒng)上可以使用這套腳本安裝,另外可以通過 --mirror
選項使用國內(nèi)源進(jìn)行安裝:
若你想安裝測試版的 Docker, 請從 test.docker.com 獲取腳本
# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
執(zhí)行這個命令后,腳本就會自動的將一切準(zhǔn)備工作做好,并且把 Docker 的穩(wěn)定(stable)版本安裝在系統(tǒng)中。
啟動 Docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
建立 docker 用戶組
默認(rèn)情況下,docker
命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root
用戶和 docker
組的用戶才可以訪問 Docker 引擎的 Unix socket。出于安全考慮,一般 Linux 系統(tǒng)上不會直接使用 root
用戶。因此,更好地做法是將需要使用 docker
的用戶加入 docker
用戶組。
建立 docker
組:
$ sudo groupadd docker
將當(dāng)前用戶加入 docker
組:
$ sudo usermod -aG docker $USER
退出當(dāng)前終端并重新登錄,進(jìn)行如下測試。
測試 Docker 是否安裝正確
$ docker run --rm hello-worldUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
若能正常輸出以上信息,則說明安裝成功。
鏡像加速
如果在使用過程中發(fā)現(xiàn)拉取 Docker 鏡像十分緩慢,可以配置 Docker 國內(nèi)鏡像加速。
參考文檔
- Docker 官方 Ubuntu 安裝文檔
Debian
Debian 安裝 Docker
警告:切勿在沒有配置 Docker APT 源的情況下直接使用 apt 命令安裝 Docker.
準(zhǔn)備工作
系統(tǒng)要求
Docker 支持以下版本的 Debian 操作系統(tǒng):
- Debian Bullseye 11
- Debian Buster 10
卸載舊版本
舊版本的 Docker 稱為 docker
或者 docker-engine
,使用以下命令卸載舊版本:
$ sudo apt-get remove docker \docker-engine \docker.io
使用 APT 安裝
由于 apt 源使用 HTTPS 以確保軟件下載過程中不被篡改。因此,我們首先需要添加使用 HTTPS 傳輸?shù)能浖约?CA 證書。
$ sudo apt-get update$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg \lsb-release
鑒于國內(nèi)網(wǎng)絡(luò)問題,強(qiáng)烈建議使用國內(nèi)源,官方源請在注釋中查看。
為了確認(rèn)所下載軟件包的合法性,需要添加軟件源的 GPG 密鑰。
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 官方源
# $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
然后,我們需要向 sources.list
中添加 Docker 軟件源:
在一些基于 Debian 的 Linux 發(fā)行版中
$(lsb_release -cs)
可能不會返回 Debian 的版本代號,例如 Kail Linux、 BunsenLabs Linux。在這些發(fā)行版中我們需要將下面命令中的$(lsb_release -cs)
替換為 https://mirrors.aliyun.com/docker-ce/linux/debian/dists/ 中支持的 Debian 版本代號,例如buster
。
$ echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 官方源
# $ echo \
# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
# $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
以上命令會添加穩(wěn)定版本的 Docker APT 源,如果需要測試版本的 Docker 請將 stable 改為 test。
安裝 Docker
更新 apt 軟件包緩存,并安裝 docker-ce
。
$ sudo apt-get update$ sudo apt-get install docker-ce docker-ce-cli containerd.io
使用腳本自動安裝
在測試或開發(fā)環(huán)境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,Debian 系統(tǒng)上可以使用這套腳本安裝,另外可以通過 --mirror
選項使用國內(nèi)源進(jìn)行安裝:
若你想安裝測試版的 Docker, 請從 test.docker.com 獲取腳本
# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
執(zhí)行這個命令后,腳本就會自動的將一切準(zhǔn)備工作做好,并且把 Docker 的穩(wěn)定(stable)版本安裝在系統(tǒng)中。
啟動 Docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
建立 docker 用戶組
默認(rèn)情況下,docker
命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root
用戶和 docker
組的用戶才可以訪問 Docker 引擎的 Unix socket。出于安全考慮,一般 Linux 系統(tǒng)上不會直接使用 root
用戶。因此,更好地做法是將需要使用 docker
的用戶加入 docker
用戶組。
建立 docker
組:
$ sudo groupadd docker
將當(dāng)前用戶加入 docker
組:
$ sudo usermod -aG docker $USER
退出當(dāng)前終端并重新登錄,進(jìn)行如下測試。
測試 Docker 是否安裝正確
$ docker run --rm hello-worldUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
若能正常輸出以上信息,則說明安裝成功。
鏡像加速
如果在使用過程中發(fā)現(xiàn)拉取 Docker 鏡像十分緩慢,可以配置 Docker 國內(nèi)鏡像加速。
參考文檔
- Docker 官方 Debian 安裝文檔
Fedora
Fedora 安裝 Docker
警告:切勿在沒有配置 Docker dnf 源的情況下直接使用 dnf 命令安裝 Docker.
準(zhǔn)備工作
系統(tǒng)要求
Docker 支持以下版本的 Fedora 操作系統(tǒng):
- 33
- 34
卸載舊版本
舊版本的 Docker 稱為 docker
或者 docker-engine
,使用以下命令卸載舊版本:
$ sudo dnf remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine
使用 dnf 安裝
執(zhí)行以下命令安裝依賴包:
$ sudo dnf -y install dnf-plugins-core
鑒于國內(nèi)網(wǎng)絡(luò)問題,強(qiáng)烈建議使用國內(nèi)源,官方源請在注釋中查看。
執(zhí)行下面的命令添加 dnf
軟件源:
$ sudo dnf config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/fedora/docker-ce.repo$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo# 官方源
# $ sudo dnf config-manager \
# --add-repo \
# https://download.docker.com/linux/fedora/docker-ce.repo
如果需要測試版本的 Docker 請使用以下命令:
$ sudo dnf config-manager --set-enabled docker-ce-test
你也可以禁用測試版本的 Docker
$ sudo dnf config-manager --set-disabled docker-ce-test
安裝 Docker
更新 dnf
軟件源緩存,并安裝 docker-ce
。
$ sudo dnf update
$ sudo dnf install docker-ce docker-ce-cli containerd.io
你也可以使用以下命令安裝指定版本的 Docker
$ dnf list docker-ce --showduplicates | sort -rdocker-ce.x86_64 18.06.1.ce-3.fc28 docker-ce-stable$ sudo dnf -y install docker-ce-18.06.1.ce
使用腳本自動安裝
在測試或開發(fā)環(huán)境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,Debian 系統(tǒng)上可以使用這套腳本安裝,另外可以通過 --mirror
選項使用國內(nèi)源進(jìn)行安裝:
若你想安裝測試版的 Docker, 請從 test.docker.com 獲取腳本
# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
執(zhí)行這個命令后,腳本就會自動的將一切準(zhǔn)備工作做好,并且把 Docker 最新穩(wěn)定(stable)版本安裝在系統(tǒng)中。
啟動 Docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
建立 docker 用戶組
默認(rèn)情況下,docker
命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root
用戶和 docker
組的用戶才可以訪問 Docker 引擎的 Unix socket。出于安全考慮,一般 Linux 系統(tǒng)上不會直接使用 root
用戶。因此,更好地做法是將需要使用 docker
的用戶加入 docker
用戶組。
建立 docker
組:
$ sudo groupadd docker
將當(dāng)前用戶加入 docker
組:
$ sudo usermod -aG docker $USER
退出當(dāng)前終端并重新登錄,進(jìn)行如下測試。
測試 Docker 是否安裝正確
$ docker run --rm hello-worldUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
若能正常輸出以上信息,則說明安裝成功。
鏡像加速
如果在使用過程中發(fā)現(xiàn)拉取 Docker 鏡像十分緩慢,可以配置 Docker 國內(nèi)鏡像加速。
參考文檔
- Docker 官方 Fedora 安裝文檔。
CentOS
CentOS 安裝 Docker
警告:切勿在沒有配置 Docker YUM 源的情況下直接使用 yum 命令安裝 Docker.
準(zhǔn)備工作
系統(tǒng)要求
Docker 支持 64 位版本 CentOS 7/8,并且要求內(nèi)核版本不低于 3.10。 CentOS 7 滿足最低內(nèi)核的要求,但由于內(nèi)核版本比較低,部分功能(如 overlay2
存儲層驅(qū)動)無法使用,并且部分功能可能不太穩(wěn)定。
卸載舊版本
舊版本的 Docker 稱為 docker
或者 docker-engine
,使用以下命令卸載舊版本:
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine
使用 yum 安裝
執(zhí)行以下命令安裝依賴包:
$ sudo yum install -y yum-utils
鑒于國內(nèi)網(wǎng)絡(luò)問題,強(qiáng)烈建議使用國內(nèi)源,官方源請在注釋中查看。
執(zhí)行下面的命令添加 yum
軟件源:
$ sudo yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo# 官方源
# $ sudo yum-config-manager \
# --add-repo \
# https://download.docker.com/linux/centos/docker-ce.repo
如果需要測試版本的 Docker 請執(zhí)行以下命令:
$ sudo yum-config-manager --enable docker-ce-test
安裝 Docker
更新 yum
軟件源緩存,并安裝 docker-ce
。
$ sudo yum install docker-ce docker-ce-cli containerd.io
CentOS8 額外設(shè)置
由于 CentOS8 防火墻使用了 nftables
,但 Docker 尚未支持 nftables
, 我們可以使用如下設(shè)置使用 iptables
:
更改 /etc/firewalld/firewalld.conf
# FirewallBackend=nftables
FirewallBackend=iptables
或者執(zhí)行如下命令:
$ firewall-cmd --permanent --zone=trusted --add-interface=docker0$ firewall-cmd --reload
使用腳本自動安裝
在測試或開發(fā)環(huán)境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,CentOS 系統(tǒng)上可以使用這套腳本安裝,另外可以通過 --mirror
選項使用國內(nèi)源進(jìn)行安裝:
若你想安裝測試版的 Docker, 請從 test.docker.com 獲取腳本
# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
執(zhí)行這個命令后,腳本就會自動的將一切準(zhǔn)備工作做好,并且把 Docker 的穩(wěn)定(stable)版本安裝在系統(tǒng)中。
啟動 Docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
建立 docker 用戶組
默認(rèn)情況下,docker
命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root
用戶和 docker
組的用戶才可以訪問 Docker 引擎的 Unix socket。出于安全考慮,一般 Linux 系統(tǒng)上不會直接使用 root
用戶。因此,更好地做法是將需要使用 docker
的用戶加入 docker
用戶組。
建立 docker
組:
$ sudo groupadd docker
將當(dāng)前用戶加入 docker
組:
$ sudo usermod -aG docker $USER
退出當(dāng)前終端并重新登錄,進(jìn)行如下測試。
測試 Docker 是否安裝正確
$ docker run --rm hello-worldUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
若能正常輸出以上信息,則說明安裝成功。
鏡像加速
如果在使用過程中發(fā)現(xiàn)拉取 Docker 鏡像十分緩慢,可以配置 Docker 國內(nèi)鏡像加速。
添加內(nèi)核參數(shù)
如果在 CentOS 使用 Docker 看到下面的這些警告信息:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
請?zhí)砑觾?nèi)核配置參數(shù)以啟用這些功能。
$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
然后重新加載 sysctl.conf
即可
$ sudo sysctl -p
參考文檔
- Docker 官方 CentOS 安裝文檔。
- https://firewalld.org/2018/07/nftables-backend
- https://github.com/moby/libnetwork/issues/2496
Raspberry Pi
樹莓派卡片電腦安裝 Docker
警告:切勿在沒有配置 Docker APT 源的情況下直接使用 apt 命令安裝 Docker.
系統(tǒng)要求
Docker 不僅支持 x86_64
架構(gòu)的計算機(jī),同時也支持 ARM
架構(gòu)的計算機(jī),本小節(jié)內(nèi)容以樹莓派單片電腦為例講解 ARM
架構(gòu)安裝 Docker。
Docker 支持以下版本的 Raspberry Pi OS 操作系統(tǒng):
- Raspberry Pi OS Buster
注: Raspberry Pi OS
由樹莓派的開發(fā)與維護(hù)機(jī)構(gòu) 樹莓派基金會 官方支持,并推薦用作樹莓派的首選系統(tǒng),其基于 Debian
。
使用 APT 安裝
由于 apt 源使用 HTTPS 以確保軟件下載過程中不被篡改。因此,我們首先需要添加使用 HTTPS 傳輸?shù)能浖约?CA 證書。
$ sudo apt-get update$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg2 \lsb-release \software-properties-common
鑒于國內(nèi)網(wǎng)絡(luò)問題,強(qiáng)烈建議使用國內(nèi)源,官方源請在注釋中查看。
為了確認(rèn)所下載軟件包的合法性,需要添加軟件源的 GPG 密鑰。
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/raspbian/gpg | sudo apt-key add -# 官方源
# $ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -
然后,我們需要向 sources.list
中添加 Docker 軟件源:
$ sudo add-apt-repository \"deb [arch=armhf] https://mirrors.aliyun.com/docker-ce/linux/raspbian \$(lsb_release -cs) \stable"# 官方源
# $ sudo add-apt-repository \
# "deb [arch=armhf] https://download.docker.com/linux/raspbian \
# $(lsb_release -cs) \
# stable"
以上命令會添加穩(wěn)定版本的 Docker APT 源,如果需要測試版本的 Docker 請將 stable 改為 test。
安裝 Docker
更新 apt 軟件包緩存,并安裝 docker-ce
。
$ sudo apt-get update$ sudo apt-get install docker-ce
使用腳本自動安裝
在測試或開發(fā)環(huán)境中 Docker 官方為了簡化安裝流程,提供了一套便捷的安裝腳本,Raspberry Pi OS 系統(tǒng)上可以使用這套腳本安裝,另外可以通過 --mirror
選項使用國內(nèi)源進(jìn)行安裝:
若你想安裝測試版的 Docker, 請從 test.docker.com 獲取腳本
# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
執(zhí)行這個命令后,腳本就會自動的將一切準(zhǔn)備工作做好,并且把 Docker 的穩(wěn)定(stable)版本安裝在系統(tǒng)中。
啟動 Docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
建立 docker 用戶組
默認(rèn)情況下,docker
命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root
用戶和 docker
組的用戶才可以訪問 Docker 引擎的 Unix socket。出于安全考慮,一般 Linux 系統(tǒng)上不會直接使用 root
用戶。因此,更好地做法是將需要使用 docker
的用戶加入 docker
用戶組。
建立 docker
組:
$ sudo groupadd docker
將當(dāng)前用戶加入 docker
組:
$ sudo usermod -aG docker $USER
退出當(dāng)前終端并重新登錄,進(jìn)行如下測試。
測試 Docker 是否安裝正確
$ docker run --rm hello-worldUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4ee5c797bcd7: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(arm32v7)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
若能正常輸出以上信息,則說明安裝成功。
注意: ARM 平臺不能使用 x86
鏡像,查看 Raspberry Pi OS 可使用鏡像請訪問 arm32v7 或者 arm64v8。
鏡像加速
如果在使用過程中發(fā)現(xiàn)拉取 Docker 鏡像十分緩慢,可以配置 Docker 國內(nèi)鏡像加速。
Linux 離線安裝
離線部署Docker
生產(chǎn)環(huán)境中一般都是沒有公網(wǎng)資源的,本文介紹如何在生產(chǎn)服務(wù)器上離線部署Docker
括號內(nèi)的字母表示該操作需要在哪些服務(wù)器上執(zhí)行
Centos7 離線安裝Docker
YUM本地文件安裝(推薦)
推薦這種方式,是因為在生產(chǎn)環(huán)境種一般會選定某個指定的文檔軟件版本使用。
查詢可用的軟件版本(A)
#下載清華的鏡像源文件
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.reposudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repoyum update
sudo yum list docker-ce --showduplicates|sort -rLoading mirror speeds from cached hostfile
Loaded plugins: fastestmirror
docker-ce.x86_64 24.0.4-1.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.7-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.6-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.5-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable
....
下載到指定文件夾(A)
sudo yum install --downloadonly --downloaddir=/tmp/docker24_offline_install/ docker-ce-24.0.4-1.el7 docker-ce-cli-24.0.4-1.el7
Dependencies Resolved====================================================================================================================================================================================Package Arch Version Repository Size
====================================================================================================================================================================================
Installing:docker-ce x86_64 24.0.4-1.el7 docker 25 M
Installing for dependencies:container-selinux noarch 24.0.4-1.el7 extras 39 kcontainerd.io x86_64 24.0.4-1.el7 docker 23 Mdocker-ce-cli x86_64 24.0.4-1.el7 docker 40 MTransaction Summary
====================================================================================================================================================================================
Install 1 Package (+3 Dependent packages)Total download size: 87 M
Installed size: 363 M
Background downloading packages, then exiting:
(1/4): container-selinux-24.0.4-1.el7.noarch.rpm | 39 kB 00:00:00
(2/4): containerd.io-24.0.4-1.el7.x86_64.rpm | 23 MB 00:00:00
(3/4): docker-ce-24.0.4-1.el7.x86_64.rpm | 25 MB 00:00:00
(4/4): docker-ce-cli-24.0.4-1.el7.x86_64.rpm | 40 MB 00:00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 118 MB/s | 87 MB 00:00:00
exiting because "Download Only" specified
復(fù)制到目標(biāo)服務(wù)器之后進(jìn)入文件夾安裝(C-N)
- 離線安裝時,必須使用rpm命令不檢查依賴的方式安裝
rpm -Uvh *.rpm --nodeps --force
鎖定軟件版本(C-N)
下載鎖定版本軟件
可參考下文的網(wǎng)絡(luò)源搭建
sudo yum install yum-plugin-versionlock
鎖定軟件版本
sudo yum versionlock add docker
查看鎖定列表
sudo yum versionlock list
Loaded plugins: fastestmirror, versionlock
3:docker-ce-24.0.4-1.el7.*
versionlock list done
鎖定后無法再更新
sudo yum install docker-ce
Loaded plugins: fastestmirror, versionlock
Loading mirror speeds from cached hostfile
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
Package 3:docker-ce-24.0.4-1.el7.x86_64 already installed and latest version
Nothing to do
解鎖指定軟件
sudo yum versionlock delete docker-ce
Loaded plugins: fastestmirror, versionlock
Deleting versionlock for: 3:docker-ce-24.0.4-1.el7.*
versionlock deleted: 1
解鎖所有軟件
sudo yum versionlock delete all
YUM 本地源服務(wù)器搭建安裝Docker
掛載 ISO 鏡像搭建本地 File 源(AB)
# 刪除其他網(wǎng)絡(luò)源
rm -f /etc/yum.repo.d/*
# 掛載光盤或者iso鏡像
mount /dev/cdrom /mnt
# 添加本地源
cat >/etc/yum.repos.d/local_files.repo<< EOF
[Local_Files]
name=Local_Files
baseurl=file:///mnt
enable=1
gpgcheck=0
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
EOF
# 測試剛才的本地源,安裝createrepo軟件
yum clean all
yum install createrepo -y
根據(jù)本地文件搭建BASE網(wǎng)絡(luò)源(B)
# 安裝apache 服務(wù)器
yum install httpd -y
# 掛載光盤
mount /dev/cdrom /mnt
# 新建centos目錄
mkdir /var/www/html/base
# 復(fù)制光盤內(nèi)的文件到剛才新建的目錄
cp -R /mnt/Packages/* /var/www/html/base/
createrepo /var/www/html/centos/
systemctl enable httpd
systemctl start httpd
下載Docker-CE 鏡像倉庫(A)
在有網(wǎng)絡(luò)的服務(wù)器上下載Docker-ce鏡像
# 下載清華的鏡像源文件
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 新建 docker-ce目錄
mkdir /tmp/docker-ce/
# 把鏡像源同步到鏡像文件中
reposync -r docker-ce-stable -p /tmp/docker-ce/
創(chuàng)建倉庫索引(B)
把下載的 docker-ce 文件夾復(fù)制到離線的服務(wù)器
# 把docker-ce 文件夾復(fù)制到/var/www/html/docker-ce
# 重建索引
createrepo /var/www/html/docker-ce/
YUM 客戶端設(shè)置(C…N)
rm -f /etc/yum.repo.d/*
cat >/etc/yum.repos.d/local_files.repo<< EOF
[local_base]
name=local_base
# 改成B服務(wù)器地址
baseurl=http://x.x.x.x/base
enable=1
gpgcheck=0
proxy=_none_
[docker_ce]
name=docker_ce
# 改成B服務(wù)器地址
baseurl=http://x.x.x.x/base
enable=1
gpgcheck=0
proxy=_none_
EOF
Docker 安裝(C…N)
sudo yum makecache fast
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
macOS 安裝 Docker
系統(tǒng)要求
Docker Desktop for Mac 要求系統(tǒng)最低為 macOS 必須是 10.15 或更高版本, Catalina、Big Sur 或者 Monterey,建議升級到最新版本的 macOS。
安裝
使用 Homebrew 安裝
Homebrew 的 Cask 已經(jīng)支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 來進(jìn)行安裝:
$ brew install --cask docker
手動下載安裝
如果需要手動下載,請點(diǎn)擊以下 鏈接 下載 Docker Desktop for Mac。
如果你的電腦搭載的是 M1 芯片(
arm64
架構(gòu)),請點(diǎn)擊以下 鏈接 下載 Docker Desktop for Mac。你可以在 官方文檔 查閱已知的問題。
如同 macOS 其它軟件一樣,安裝也非常簡單,雙擊下載的 .dmg
文件,然后將那只叫 Moby 的鯨魚圖標(biāo)拖拽到 Application
文件夾即可(其間需要輸入用戶密碼)。
運(yùn)行
從應(yīng)用中找到 Docker 圖標(biāo)并點(diǎn)擊運(yùn)行。
運(yùn)行之后,會在右上角菜單欄看到多了一個鯨魚圖標(biāo),這個圖標(biāo)表明了 Docker 的運(yùn)行狀態(tài)。
每次點(diǎn)擊鯨魚圖標(biāo)會彈出操作菜單。
之后,你可以在終端通過命令檢查安裝后的 Docker 版本。
$ docker --version
Docker version 20.10.0, build 7287ab3
如果 docker version
、docker info
都正常的話,可以嘗試運(yùn)行一個 Nginx 服務(wù)器:
$ docker run -d -p 80:80 --name webserver nginx
服務(wù)運(yùn)行后,可以訪問 http://localhost,如果看到了 “Welcome to nginx!”,就說明 Docker Desktop for Mac 安裝成功了。
要停止 Nginx 服務(wù)器并刪除執(zhí)行下面的命令:
$ docker stop webserver
$ docker rm webserver
鏡像加速
如果在使用過程中發(fā)現(xiàn)拉取 Docker 鏡像十分緩慢,可以配置 Docker 國內(nèi)鏡像加速。
參考鏈接
- 官方文檔
Windows 10 安裝 Docker
系統(tǒng)要求
Docker Desktop for Windows 支持 64 位版本的 Windows 10 Pro,且必須開啟 Hyper-V(若版本為 v1903 及以上則無需開啟 Hyper-V),或者 64 位版本的 Windows 10 Home v1903 及以上版本。
安裝
手動下載安裝
點(diǎn)擊以下 鏈接 下載 Docker Desktop for Windows。
下載好之后雙擊 Docker Desktop Installer.exe
開始安裝。
使用 winget 安裝
$ winget install Docker.DockerDesktop
在 WSL2 運(yùn)行 Docker
若你的 Windows 版本為 Windows 10 專業(yè)版或家庭版 v1903 及以上版本可以使用 WSL2 運(yùn)行 Docker,具體請查看 Docker Desktop WSL 2 backend。
運(yùn)行
在 Windows 搜索欄輸入 Docker 點(diǎn)擊 Docker Desktop 開始運(yùn)行。
Docker 啟動之后會在 Windows 任務(wù)欄出現(xiàn)鯨魚圖標(biāo)。
等待片刻,當(dāng)鯨魚圖標(biāo)靜止時,說明 Docker 啟動成功,之后你可以打開 PowerShell 使用 Docker。
推薦使用 Windows Terminal 在終端使用 Docker。
鏡像加速
如果在使用過程中發(fā)現(xiàn)拉取 Docker 鏡像十分緩慢,可以配置 Docker 國內(nèi)鏡像加速。
參考鏈接
- 官方文檔
- WSL 2 Support is coming to Windows 10 Versions 1903 and 1909
鏡像加速器
國內(nèi)從 Docker Hub 拉取鏡像有時會遇到困難,此時可以配置鏡像加速器。國內(nèi)很多云服務(wù)商都提供了國內(nèi)加速器服務(wù),例如:
- 阿里云加速器(點(diǎn)擊管理控制臺 -> 登錄賬號(淘寶賬號) -> 左側(cè)鏡像工具 -> 鏡像加速器 -> 復(fù)制加速器地址)
- 網(wǎng)易云加速器
https://hub-mirror.c.163.com
- 百度云加速器
https://mirror.baidubce.com
由于鏡像服務(wù)可能出現(xiàn)宕機(jī),建議同時配置多個鏡像。各個鏡像站測試結(jié)果請到 docker-practice/docker-registry-cn-mirror-test 查看。
國內(nèi)各大云服務(wù)商(騰訊云、阿里云、百度云)均提供了 Docker 鏡像加速服務(wù),建議根據(jù)運(yùn)行 Docker 的云平臺選擇對應(yīng)的鏡像加速服務(wù),具體請參考本頁最后一小節(jié)。
本節(jié)我們以 網(wǎng)易云 鏡像服務(wù) https://hub-mirror.c.163.com
為例進(jìn)行介紹。
Ubuntu 16.04+、Debian 8+、CentOS 7+
目前主流 Linux 發(fā)行版均已使用 systemd 進(jìn)行服務(wù)管理,這里介紹如何在使用 systemd 的 Linux 發(fā)行版中配置鏡像加速器。
請首先執(zhí)行以下命令,查看是否在 docker.service
文件中配置過鏡像地址。
$ systemctl cat docker | grep '\-\-registry\-mirror'
如果該命令有輸出,那么請執(zhí)行 $ systemctl cat docker
查看 ExecStart=
出現(xiàn)的位置,修改對應(yīng)的文件內(nèi)容去掉 --registry-mirror
參數(shù)及其值,并按接下來的步驟進(jìn)行配置。
如果以上命令沒有任何輸出,那么就可以在 /etc/docker/daemon.json
中寫入如下內(nèi)容(如果文件不存在請新建該文件):
{"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
}
注意,一定要保證該文件符合 json 規(guī)范,否則 Docker 將不能啟動。
之后重新啟動服務(wù)。
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
Windows 10
對于使用 Windows 10
的用戶,在任務(wù)欄托盤 Docker 圖標(biāo)內(nèi)右鍵菜單選擇 Settings
,打開配置窗口后在左側(cè)導(dǎo)航菜單選擇 Docker Engine
,在右側(cè)像下邊一樣編輯 json 文件,之后點(diǎn)擊 Apply & Restart
保存后 Docker 就會重啟并應(yīng)用配置的鏡像地址了。
{"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
}
macOS
對于使用 macOS 的用戶,在任務(wù)欄點(diǎn)擊 Docker Desktop 應(yīng)用圖標(biāo) -> Settings...
,在左側(cè)導(dǎo)航菜單選擇 Docker Engine
,在右側(cè)像下邊一樣編輯 json 文件。修改完成之后,點(diǎn)擊 Apply & restart
按鈕,Docker 就會重啟并應(yīng)用配置的鏡像地址了。
{"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
}
檢查加速器是否生效
執(zhí)行 $ docker info
,如果從結(jié)果中看到了如下內(nèi)容,說明配置成功。
Registry Mirrors:https://hub-mirror.c.163.com/
k8s.gcr.io
鏡像
可以登錄 阿里云 容器鏡像服務(wù) 鏡像中心 -> 鏡像搜索 查找。
例如 k8s.gcr.io/coredns:1.6.7
鏡像可以用 registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7
代替。
一般情況下有如下對應(yīng)關(guān)系:
# $ docker pull k8s.gcr.io/xxx$ docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/xxx
不再提供服務(wù)的鏡像
某些鏡像不再提供服務(wù),添加無用的鏡像加速器,會拖慢鏡像拉取速度,你可以從鏡像配置列表中刪除它們。
- https://dockerhub.azk8s.cn 已轉(zhuǎn)為私有
- https://reg-mirror.qiniu.com
- https://registry.docker-cn.com
建議 watch(頁面右上角) 鏡像測試 這個 GitHub 倉庫,我們會在此更新各個鏡像地址的狀態(tài)。
云服務(wù)商
某些云服務(wù)商提供了 僅供內(nèi)部 訪問的鏡像服務(wù),當(dāng)您的 Docker 運(yùn)行在云平臺時可以選擇它們。
-
Azure 中國鏡像
https://dockerhub.azk8s.cn
-
騰訊云
https://mirror.ccs.tencentyun.com
開啟實驗特性
一些 docker 命令或功能僅當(dāng) 實驗特性 開啟時才能使用,請按照以下方法進(jìn)行設(shè)置。
Docker CLI 的實驗特性
從 v20.10
版本開始,Docker CLI 所有實驗特性的命令均默認(rèn)開啟,無需再進(jìn)行配置或設(shè)置系統(tǒng)環(huán)境變量。
開啟 dockerd 的實驗特性
編輯 /etc/docker/daemon.json
,新增如下條目
{"experimental": true
}
作者主頁: 正函數(shù)的個人主頁
文章收錄專欄: Docker
歡迎大家點(diǎn)贊 👍 收藏 ? 加關(guān)注哦!
如果你認(rèn)為這篇文章對你有幫助,請給正函數(shù)點(diǎn)個贊吧,如果發(fā)現(xiàn)什么問題,歡迎評論區(qū)留言!!