前言
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
方法 / 步骤
1. 查看系统版本
cat /etc/redhat-release
显示:
在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看
uname -r
二. 用yum源安装
2.1 查看是否已安装docker列表
yum list installed | grep docker
如果已经安装,显示:
--------------------------------------
docker.x86_64,
docker-client.x86_64,
docker-common.x86_64
--------------------------------------
.- 可以删除安装的软件包
yum -y remove docker.x86_64
yum -y remove docker-client.x86_64
yum -y remove docker-common.x86_64
2.2 安装docker
# 查看docker 列表
yum list docker-ce --showduplicates | sort -r
# 安装yum 工具
yum install -y yum-utils
# 切换yum仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker指定版本 (推荐) 笔者centOS 7.9 安装 docker-ce-17.12.1.ce
yum -y install docker-ce-17.12.1.ce
# 安装docker默认版本(不推荐)
yum -y install docker
-y表示不询问安装,直到安装成功,安装完后再次查看安装列表
2.3 启动docker
systemctl start docker
2.4 查看docker服务状态
systemctl status docker
以上说明docker安装成功
三. 离线安装模式
3.1 安装包官方地址:
可以先下载到本地,然后通过ftp工具上传到服务器上,或者在服务器上使用命令下载
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz
3.2 解压
tar -zxvf docker-18.06.3-ce.tgz
3.3 将解压出来的docker文件复制到 /usr/bin/ 目录下
cp docker/* /usr/bin/
3.4 在/etc/systemd/system/目录下新增docker.service文件,
touch docker.service
内容如下,这样可以将docker注册为service服务
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
此处的–insecure-registry=127.0.0.1(此处改成你私服ip)设置是针对有搭建了自己私服Harbor时允许docker进行不安全的访问,否则访问将会被拒绝。
3.5 启动docker
给docker.service文件添加执行权限
chmod +x /etc/systemd/system/docker.service
重新加载配置文件(每次有修改docker.service文件时都要重新加载下)
systemctl daemon-reload
启动
systemctl start docker
设置开机启动
systemctl enable docker.service
查看docker服务状态
systemctl status docker
上图表示docker已安装成功
三. 设置镜像加速
进入阿里云镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"debug":false,
"experimental":false,
"features":{
"buildkit":true
},
"insecure-registries":[
],
"registry-mirrors":[
"https://u2v98cer.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
],
"exec-opts":[
"native.cgroupdriver=systemd"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
四. 设置自动启动
systemctl enable docker.service
# 查看docker是否开机启动
# docker.service enabled 已经开机启动
systemctl list-unit-files | grep docker
# 设置容器自启
docker update --restart=always 容器名称
参考资料 & 致谢
【1】linux 安装docker
【2】Docker服务启动报错:Job for docker.service failed because the control process exited with error
【3】安装docker后启动报错