前言:
Docker 是一個用於開發、傳送和執行應用程式的開放平臺。Docker 使您能夠將應用程式與基礎設施分開,以便您可以快速交付軟體。使用 Docker,您可以像管理應用程式一樣管理基礎設施。通過利用 Docker 的快速交付、測試和部署程式碼的方法,您可以顯著減少編寫程式碼和在生產中執行程式碼之間的延遲。為了讓開發、部署、測試和分發變得更高效和輕鬆,讓我們把Docker安裝起來體驗一下它的魅力所在吧!
系統要求:
- Docker 支援 64 位版本 CentOS 7/8,並且要求核心版本不低於 3.10。
- 需要啟用centos-extras
repository。在 CentOS 7 中這個倉庫是預設啟用的,如果之前有將其禁用,則需要重新啟用
- CentOS 7 滿足最低核心的要求,但由於核心版本比較低,部分功能(如
overlay2
儲存層驅動)無法使用,並且部分功能可能不太穩定。
安裝環境:
本文主要是在Liunx作業系統CentOS8.4中安裝Docker,我們安裝之前可以先檢視自己的系統版本,使用命令:lsb_release -a 進行檢視(如下圖所示)。
注意:切勿在沒有配置 Docker YUM 源的情況下直接使用 yum 命令安裝 Docker.
解除安裝舊版本:
舊版本的Docker在CentOS中的包名為docker或者docker-engine。如果你之前的Linux CentOS系統中安裝了Docker的舊版本,你需要先解除安裝舊版Docker及其相關依賴,執行以下命令:
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
報告沒有安裝這些軟體包,那也沒關係。
注意:/var/lib/docker/
目錄下的內容,包括映象、容器、卷組、網路等檔案將被保留。Docker CE 的新包名為docker-ce
。
yum到底是幹什麼的?
簡單描述:yum稱為包管理器,主要用來解決:下載、依賴關係、安裝、解除安裝四種問題。
詳細說明:https://blog.csdn.net/weixin_43202123/article/details/119948927
使用yum安裝:
執行以下命令安裝依賴包和必要的一些系統工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
配置yum穩定映象源:
因為國內網路原因,推薦使用阿里雲提供的Docker CE 映象源站!
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
官方映象源地址:
# 官方源 # sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝 Docker
更新 yum
軟體源快取,並安裝 docker-ce(一路yes即可)
。
sudo yum install docker-ce docker-ce-cli containerd.io
如下是成功安裝的依賴:
檢視安裝成功的docker版本:docker -v
CentOS8 額外設定
由於 CentOS8 防火牆使用了 nftables
,但 Docker 尚未支援 nftables。
首先我們檢視防火牆的狀態,假如防火牆狀態是開啟的我們執行下面的操作:
systemctl status firewalld
我們可以使用如下設定使用 iptables
:更改 /etc/firewalld/firewalld.conf
# FirewallBackend=nftables FirewallBackend=iptables
或者執行以下命令:
firewall-cmd --permanent --zone=trusted --add-interface=docker0 firewall-cmd --reload
開啟Docker服務:
執行sudo service docker start 命令開啟Docker服務提示異常:Redirecting to /bin/systemctl start docker.service
看異常就是需要執行systemctl的相關命令,因為Linux的不同發行版開啟Docker服務的命令也有所不同
sudo systemctl enable docker
sudo systemctl start docker
最後檢視docker執行狀態
systemctl status docker
啟動 Docker 守護程式:
手動啟動
安裝 Docker 後,您需要啟動 Docker 守護程式。大多數 Linux 發行版用於systemctl
啟動服務。
sudo systemctl start docker
在系統啟動時自動啟動
如果您希望 Docker 在啟動時啟動,請參閱 配置 Docker 以在啟動時啟動?。
Docker基礎命令:
啟動docker:systemctl start docker
停止docker:systemctl stop docker
重啟docker:systemctl restart docker
檢視docker狀態:systemctl status docker
開機啟動:systemctl enable docker
當前系統docker資訊:docker info
列舉出所有的容器:docker ps -a
停止容器:docker start 容器ID或容器名
直接關閉容器:docker kill 容器ID或容器名
重啟容器:docker restart 容器ID或者容器名
刪除容器:docker rm 容器ID或者容器名
檢視映象:docker image ls
更多命令搜尋(推薦):Docker命令線上速查手冊
測試 Docker 是否安裝正確
首先我們輸入docker run hello-world
是否會出現下圖所示的提示,如果出現報錯,這環境配置可能出現了問題。
注意:這行命令會讓Docker從官方倉庫中拉去hello-world的映象到本地(是本地不存在該映象的情況),並且將其自動例項化容器。
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51 Status: Downloaded newer image for hello-world:latest Hello 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 the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share 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/
檢視hello-World映象和容器: