官方文档参考:https://docs.docker.com/install/linux/docker-ce/centos/
1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
2: 添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加阿里云的安装源
官网源安装如下:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或者 下载repo文件放到/etc/yum.repo.d/目录 (wget https://download.docker.com/linux/centos/docker-ce.repo)
3: 更新源并安装 Docker-CE
yum makecache fast
yum -y install docker-ce
如若此前有安装过,先进行卸载:
yum remove -y docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
4: 开启Docker服务
systemctl start docker
docker info
安装指定版本的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)
yum -y install docker-ce-[VERSION]
注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。
yum list docker-ce-selinux- --showduplicates | sort -r
yum -y install docker-ce-selinux-[VERSION]
阿里云ECS内网机器安装:
# 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2中的命令
# 经典网络:
yum-config-manager --add-repo http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
# VPC网络:
yum-config-manager --add-repo http://mirrors.could.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
下载依赖包,自制本地yum源
yum -y install yum-utils.noarch
yumdownloader --resolve --destdir=/root/docker-rpm device-mapper-persistent-data
yumdownloader --resolve --destdir=/root/docker-rpm lvm2
yumdownloader --resolve --destdir=/root/docker-rpm docker-ce
cd /root/docker-rpm
createrepo ./
vim /etc/yum.repos.d/docker-rpm.repo
[docker-rpm]
name=docker-rpm
baseurl=file:///root/docker-rpm
enable=1
gpgcheck=0
yum repolist
安装校验
docker version
添加内核参数
默认配置下,如果在 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
镜像加速器
Docker 官方提供的中国 registry mirror
阿里云加速器(需登录账号获取)
DaoCloud 加速器
网易云加速器 https://hub-mirror.c.163.com
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
{
"registry-mirrors": [
"https://hub-mirror.c.163.com"
]
}
之后重新启动服务。
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
Windows 10
对于使用 Windows 10 的用户,在任务栏托盘 Docker 图标内右键菜单选择Settings ,打开配置窗口后在左侧导航菜单选择 Docker Engine ,在右侧像下边一样编辑 json 文件,之后点击 Apply & Restart 保存后 Docker 就会重启并应用配置的镜像地址了。
{
"registry-mirrors": [
"https://hub-mirror.c.163.com"
]
}
macOS
对于使用 macOS 的用户,在任务栏点击 Docker Desktop 应用图标 ->Perferences ,在左侧导航菜单选择 Docker Engine ,在右侧像下边一样编辑json 文件。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。
{
"registry-mirrors": [
"https://hub-mirror.c.163.com"
]
}
检查加速器是否生效
执行 $ docker info ,如果从结果中看到了如下内容,说明配置成功。
Registry Mirrors:
https://hub-mirror.c.163.com/
阿里云镜像加速器:
登录阿里云,选择 容器镜像服务,即可看到如何操作:
编辑配置文件
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://4i2ux3ha.mirror.aliyuncs.com"]
}
重启服务
systemctl daemon-reload
systemctl restart docker
查看是否成功
docker info
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://4i2ux3ha.mirror.aliyuncs.com/
Live Restore Enabled: false
docker 命令:
docker image pull 是下载镜像的命令。镜像从远程镜像仓库服务的仓库中下载。
$ docker image ls
Windows示例如下。
> docker image pull microsoft/powershell:nanoserver
> docker image pull microsoft/dotnet:latest
> docker image ls
Docker镜像常用命令
docker image pull 是下载镜像的命令。镜像从远程镜像仓库服务的仓库中下载。默认情况下,镜像会从 Docker Hub 的仓库中拉取。
docker image pull alpine:latest 命令会从 Docker Hub 的 alpine 仓库中拉取标签为 latest 的镜像。
docker image ls 列出了本地 Docker 主机上存储的镜像。可以通过 --digests 参数来查看镜像的 SHA256 签名。docker image inspect命令非常有用!该命令完美展示了镜像的细节,包括镜像层数据和元数据。
docker image rm 用于删除镜像。
docker image rm alpine:latest 命令的含义是删除 alpine:latest 镜像。当镜像存在关联的容器,并且容器处于运行(Up)或者停止(Exited)状态时,不允许删除该镜像