docker安裝
CentOS 7 中 Docker 的安裝:
Docker 軟件包已經包括在默認的 CentOS-Extras 軟件源(聯網使用centos7u2自帶網絡Yum源)裏。因此想要安裝 docker,只需要運行下面的 yum 命令:
# yum install -y epel*
# yum install docker
啓動 Docker 服務:
# service docker start
# chkconfig docker on
CentOS 7
# systemctl start docker.service
# systemctl enable docker.service
確定docker服務在運行:
結果會顯示服務端和客戶端的版本,如果只顯示客戶端版本說明服務沒有啓動
# docker version
Client:
Version: 1.10.3
API version: 1.22
...
docker版本與官方安裝方式
moby、docker-ce與docker-ee
最早時docker是一個開源項目,主要由docker公司維護。
2017年3月1日起,docker公司將原先的docker項目改名爲moby,並創建了docker-ce和docker-ee。
三者關係:
moby是繼承了原先的docker的項目,是社區維護的的開源項目,誰都可以在moby的基礎打造自己的容器產品
docker-ce是docker公司維護的開源項目,是一個基於moby項目的免費的容器產品
docker-ee是docker公司維護的閉源產品,是docker公司的商業產品
moby project由社區維護,docker-ce project是docker公司維護,docker-ee是閉源的docker公司維護。
CentOS–官方安裝
如果是centos,上面的安裝命令會在系統上添加yum源:/etc/yum.repos.d/docker-ce.repo
# wget https://download.docker.com/linux/centos/docker-ce.repo
# mv docker-ce.repo /etc/yum.repos.d
# yum install -y docker-ce
或者直接下載rpm安裝:
# wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm
# yum localinstall docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm
國內源安裝新版docker
使用aliyun docker yum源安裝新版docker
刪除已安裝的Docker
[root@yixuan ~]# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
配置阿里雲Docker Yum源
# yum install -y yum-utils device-mapper-persistent-data lvm2 git
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安裝指定版本
查看Docker版本:
# yum list docker-ce --showduplicates
安裝較舊版本(比如Docker 17.03.2) :
需要指定完整的rpm包的包名,並且加上–setopt=obsoletes=0 參數:
# yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
例如:
# yum install -y --setopt=obsoletes=0 docker-ce-19.03.2 docker-ce-selinux-19.03.2
安裝Docker新版本(比如Docker 18.03.0):加上rpm包名的版本號部分或不加都可以:
# yum install docker-ce-18.03.0.ce -y
或者
[root@yixuan ~]# yum install -y docker-ce
啓動Docker服務:
#systemctl enable docker
#systemctl start docker
查看docker版本狀態:
[root@yixuan ~]# docker -v
Docker version 19.03.2, build 6a30dfc
[root@yixuan ~]# docker version
Client: Docker Engine - Community
Version: 19.03.2
API version: 1.40
Go version: go1.12.8
Git commit: 6a30dfc
Built: Thu Aug 29 05:28:55 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.2
API version: 1.40 (minimum version 1.12)
Go version: go1.12.8
Git commit: 6a30dfc
Built: Thu Aug 29 05:27:34 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
查看docker運行狀態:
# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
...
=======================================================
報錯1:
docker info的時候報如下錯誤
bridge-nf-call-iptables is disabled
解決1:
追加如下配置,然後重啓系統
# vim /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1
問題2:
虛擬機ping百度也能ping通,但是需要等好幾秒纔出結果,關鍵是下載鏡像一直報錯如下
# docker pull daocloud.io/library/nginx
Using default tag: latest
Error response from daemon: Get https://daocloud.io/v2/: dial tcp: lookup daocloud.io on 192.168.1.2:53: read udp 192.168.1.189:41335->192.168.1.2:53: i/o timeout
解決2:
我的虛擬機用的網關和dns都是虛擬機自己的.1或者.2,把DNS改成8.8.8.8問題就解決了,ping百度也秒出結果
# vim /etc/resolv.conf
nameserver 8.8.8.8
簡單測試
運行一個容器
[root@192 ~]# docker run -it daocloud.io/library/ubuntu /bin/bash #運行容器
Unable to find image 'daocloud.io/library/ubuntu:latest' locally
latest: Pulling from library/ubuntu
5c939e3a4d10: Pull complete
c63719cdbe7a: Pull complete
19a861ea6baf: Pull complete
651c9d2d6c4f: Pull complete
Digest: sha256:bc025862c3e8ec4a8754ea4756e33da6c41cba38330d7e324abd25c8e0b93300
Status: Downloaded newer image for daocloud.io/library/ubuntu:latest
如果自動進入下面的容器環境,說明ubuntu鏡像運行成功,Docker的安裝也沒有問題:可以操作容器了
root@db8e84e2ea96:/#