docker 安装与配置

一、 环境准备

IP主机名操作系统版本docker版本
192.168.168.128master01CentOS Linux release 7.9.2009 (Core)docker-20.10.15.tgz

二、安装

# 安装包获取
cd /root
wget -c https://download.docker.com/linux/static/stable/x86_64/docker-20.10.15.tgz
[root@master01 ~]# ll  docker-20.10.15.tgz
-rw-r--r--. 1 root root 64928849 Aug  3 06:58 docker-20.10.15.tgz
[root@master01 ~]#
# 解压
tar -zxvf docker-20.10.15.tgz
mkdir  -p /usr/local/bin/
mv /root/docker/* /usr/local/bin/

三、dockerd启动参数详解

配置选项默认值描述
–config-file/etc/docker/daemon.jsondockerd启动的配置文件路径
–containerd/run/containerd/containerd.sockdockerd启动的时候会自动启动containerd,containerd会监听此unix sock ,dockerd会通过此sock文件与containerd通信
–containerd-namespacemobycontainerd的命名空间
-H, --host list/var/run/docker.sockdockerd监听的unix sock的路径,用于接收客户端的请求
–exec-opt–exec-opt native.cgroupdriver=cgroupfsdocker所使用的cgroup driver,默认是cgroupfs

dockerd进程(Docker daemon) 能通过三种方式进行监听,unix, tcp, 和 fd。默认方式是通过unix 套接字进行监听,该sock监听文件的默认路径为 /var/run/docker.sock。该sock方式只能本地访问,如果想要远程访问,就需要使用tcp的方式,tcp的监听方式为:-H tcp://ip:2375。dockerd也可以同时使用多种监听方式,示例如下:

dockerd -H unix:///var/run/docker.sock -H tcp://192.168.59.106 -H tcp://10.10.10.2

dockerd 指定配置文件启动

dockerd  --config-file /run/docker/daemon.json
cat << EOF > /etc/docker/daemon.json	
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
    "https://registry.hub.docker.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ]

}
EOF

四、配置systemd服务

 cat <<EOF > /usr/lib/systemd/system/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/local/bin/dockerd
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
EOF

注意
dockerd相关的执行程序请放在/usr/local/bin/ 路径下,因为该路径存在于systemd服务管理中的PATH环境变量中,如果存放于其他路径中,systemctl启动会报错。

启动服务

在使用systemctl启动服务之前,需要先把firewalld服务关闭,否则会无法启动docker服务;如果直接命令行启动dockerd,则不会报错,具体原因还未找到…

systemctl stop firewalld
systemctl  daemon-reload
systemctl start docker

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值