1. 程式人生 > 實用技巧 >Docker介紹(一)

Docker介紹(一)

#  下載阿里雲的 Centos7 的docker.repo 

# step 1: 安裝必要的一些系統工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 新增軟體源資訊
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新並安裝Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 開啟Docker服務
sudo service docker start

# 注意:
# 官方軟體源預設啟用了最新的軟體,您可以通過編輯軟體源的方式獲取各個版本的軟體包。例如官方並沒有將測試版本的軟體源置為可用,您可以通過以下方式開啟。同理可以開啟各種測試版本等。
# vim /etc/yum.repos.d/docker-ee.repo
#   將[docker-ce-test]下方的enabled=0修改為enabled=1
#
# 安裝指定版本的Docker-CE:
# Step 1: 查詢Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安裝指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

# 驗證版本:
[root@node-2 ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.12
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        48a66213fe
 Built:             Mon Jun 22 15:46:54 2020
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

引用: https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11OFih08

Docker Engine:

不同的引擎儲存效果不一樣, 還是需要謹慎. 可以有很多方案的

# 檢視引擎儲存格式(官方推薦overlay2 格式):
docker info
.......
Storage Driver: overlay2  # 19.0+ 預設這個格式

Storage Driver: devicemapper  # 老版本都是這個格式,一開始就是100G 超過以後就會出現IO error. 不推薦使用

# 如果docker 資料目錄是一塊單獨的磁碟分割槽而且是XFS格式的,那麼需要在格式化的時候加上引數: -n ftype=1 , 否則後期再啟動容器的時候會報錯不支援d -type

Docker 映象加速配置:

引用: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors?accounttraceid=60b8bc68b9cf4a29a250a87a4a721f4cmmsa

## 
國內從 DockerHub 拉取映象有時會遇到困難,此時可以配置映象加速器。Docker 官方和國內很多雲服務商都提供了國內加速器服務,例如:

網易:https://hub-mirror.c.163.com/
阿里雲:https://<你的ID>.mirror.aliyuncs.com
七牛雲加速器:https://reg-mirror.qiniu.com

當配置某一個加速器地址之後,若發現拉取不到映象,請切換到另一個加速器地址。國內各大雲服務商均提供了 Docker 映象加速服務,建議根據執行 Docker 的雲平臺選擇對應的映象加速服務。

阿里雲映象獲取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陸後,左側選單選中映象加速器就可以看到你的專屬地址了:


1. 安裝/升級Docker客戶端
推薦安裝1.10.0以上版本的Docker客戶端,參考文件 docker-ce

2. 配置映象加速器
針對Docker客戶端版本大於 1.10.0 的使用者

您可以通過修改daemon配置檔案/etc/docker/daemon.json來使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://i04elxtl.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker 檢視程序關係:

[root@node-2 overlay2]# ps -ef | grep docker
root      11951      1  0 16:34 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root      12211   1257  0 16:36 pts/0    00:00:00 grep --color=auto docker
[root@node-2 overlay2]# pstree 11951
dockerd───9*[{dockerd}]
[root@node-2 overlay2]# pstree 11951
dockerd───9*[{dockerd}]
[root@node-2 overlay2]# pstree -p 11951
dockerd(11951)─┬─{dockerd}(11952)
               ├─{dockerd}(11953)
               ├─{dockerd}(11954)
               ├─{dockerd}(11955)
               ├─{dockerd}(11956)
               ├─{dockerd}(11957)
               ├─{dockerd}(11958)
               ├─{dockerd}(11959)
               └─{dockerd}(12070)

Docker 映象使用:

# 下載映象
[root@node-2 overlay2]# docker pull nginx
Using default tag: latest
chalatest: Pulling from library/nginx
8559a31e96f4: Pull complete 
8d69e59170f7: Pull complete 
3f9f1ec1d262: Pull complete 
d1f5ff4f210d: Pull complete 
1e22bfa8652e: Pull complete 
Digest: sha256:21f32f6c08406306d822a0e6e8b7dc81f53f336570e852e25fbe1e3e3d0d0133
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

# 以nginx映象啟動2個容器:
[root@node-2 overlay2]# docker run -it -d -p 80:80 nginx
3241dc8d7601b55c0de488d9b04715d0f263c9ef183d16a5d5c35a3f234f12e2
[root@node-2 overlay2]# docker run -it -d -p 81:80 nginx
855d166e25f80310f923d73cdce8fd4d89455ef6851ca8644fa4def6bbddb9e9