初學Docker

一、基本概念
Docker 包括三個基本概念
鏡像( Image )
容器( Container )
倉庫( Repository )
理解了這三個概念,就理解了 Docker 的整個生命週期。linux

 

二、Docker版本分類docker

Docker 分爲 CE 和 EE 兩大版本。CE 即社區版(免費,支持週期 7 個月),EE 即企業版,
強調安全,付費使用,支持週期 24 個月。
Docker CE 分爲 stable, test, 和 nightly 三個更新頻道。每六個月發佈一個 stable 版本
(18.09, 19.03, 19.09...)。json

 

三、CentOS 安裝 Docker CEubuntu

警告:切勿在沒有配置 Docker YUM 源的狀況下直接使用 yum 命令安裝 Docker.vim

準備工做centos

系統要求安全

Docker CE 支持 64 位版本 CentOS 7,而且要求內核版本不低於 3.10。 CentOS 7 知足最低
內核的要求,但因爲內核版本比較低,部分功能(如 overlay2 存儲層驅動)沒法使用,並
且部分功能可能不太穩定。bash

 

 卸載舊版本網絡

 舊版本的 Docker 稱爲 docker 或者 docker-engine ,使用如下命令卸載舊版本:app

$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

使用官方安裝腳本自動安裝

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

使用 yum 安裝

執行如下命令安裝依賴包: 

$ sudo   yum   install    -y    yum-utils    \
device-mapper-persistent-data    \
lvm2

鑑於國內網絡問題,強烈建議使用國內源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新並安裝Docker-ce

yum makecache fast
yum -y install docker-ce

開啓Docker服務

systemctl enable docker
systemctl start docker

創建 docker 用戶組

默認狀況下, docker 命令會使用 Unix socket 與 Docker 引擎通信。而只有 root 用戶和
docker 組的用戶才能夠訪問 Docker 引擎的 Unix socket。出於安全考慮,通常 Linux 系統
上不會直接使用 root 用戶。所以,更好地作法是將須要使用 docker 的用戶加入 docker
用戶組。

創建 docker 組:

$ sudo groupadd docker

將當前用戶加入 docker 組:

$ sudo usermod -aG docker $USER

注意:

# 官方軟件源默認啓用了最新的軟件,您能夠經過編輯軟件源的方式獲取各個版本的軟件包。例如官方並無將測試版本的軟件源置爲可用,你能夠經過如下方式開啓。同理能夠開啓各類測試版本等。

# vim /etc/yum.repos.d/docker-ce.repo

#   將 [docker-ce-test] 下方的 enabled=0 修改成 enabled=1

 

安裝指定版本的Docker-CE:

查找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

安裝指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)

# sudo yum -y install docker-ce-[VERSION]

 

安裝校驗

# docker version
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:03 2018
OS/Arch: linux/amd64
Experimental: false

Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:25:29 2018
OS/Arch: linux/amd64
Experimental: false

 

測試 Docker 是否安裝正確

 

# docker run hello-world


Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
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/

若能正常輸出以上信息,則說明安裝成功。

 

添加內核參數 

默認配置下,若是在 CentOS 使用 Docker CE 看到下面的這些警告信息:

WARNING:    bridge-nf-call-iptables    is    disabled
WARNING:    bridge-nf-call-ip6tables    is    disabled

請添加內核配置參數以啓用這些功能。

$ 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

參考文檔

https://docs.docker.com/engine/installation/linux/docker-ce/centos/    Docker 官方 CentOS 安裝文檔。

鏡像加速

鑑於國內網絡問題,後續拉取 Docker 鏡像十分緩慢,強烈建議安裝 Docker 以後配置 國內鏡
像加速。

Ubuntu 16.04+、Debian 8+、CentOS 7

對於使用 systemd 的系統,請在 /etc/docker/daemon.json 中寫入以下內容(若是文件不存
在請新建該文件)

# cat /etc/docker/daemon.json 

{
"registry-mirrors": ["https://tlktz89e.mirror.aliyuncs.com"]    
}

注意,必定要保證該文件符合 json 規範,不然 Docker 將不能啓動。

以後從新啓動服務。

$sudo    systemctl    daemon-reload
$sudo    systemctl    restart    docker

 

 

經常使用網址:

https://docs.docker.com/

https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fcr.console.aliyun.com%2Fcn-qingdao%2Frepositories

http://www.bejson.com/

相關文章
相關標籤/搜索