Docker的yum源安装和二进制方式安装

Docker的yum源安装

1.添加docker-ce源信息 (换镜像源,下载速度更快)
[root@node1 yum.repos.d]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo --no-check-certificate

2.修改docker-ce源
[root@node1 system]# vi /etc/yum.repos.d/docker-ce.repo
:% s#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#g
#上面那行在编辑模式回车即可

[root@node1 ~]# yum makecache fast
[root@node1 ~]# yum install docker-ce -y
[root@node1 ~]# systemctl start docker
[root@node1 ~]# docker version
[root@node1 lib]# more /usr/lib/systemd/system/docker.s
docker.service  docker.socket   
[root@node1 lib]# more /usr/lib/systemd/system/docker.service 
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd
.service
Wants=network-online.target
Requires=docker.socket containerd.service

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate i
ssues still
# exists and systemd currently does not support the cgroup feature set
 required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/conta
inerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

Docker的yum源安装和二进制方式安装_第1张图片

二进制安装

[root@node2 ~]# wget -c https://download.docker.com/linux/static/stable/x86_64/docker-20.10.18.tgz
[root@node2 ~]# tar xf docker-20.10.18.tgz -C /usr/local/
[root@node2 ~]# cd /usr/local/docker/
[root@node2 docker]# ll
total 194372
-rwxr-xr-x. 1 centos1 centos1 38629608 Sep  8 16:12 containerd
-rwxr-xr-x. 1 centos1 centos1  7442432 Sep  8 16:12 containerd-shim
-rwxr-xr-x. 1 centos1 centos1  9641984 Sep  8 16:12 containerd-shim-runc-v2
-rwxr-xr-x. 1 centos1 centos1 20582400 Sep  8 16:12 ctr
-rwxr-xr-x. 1 centos1 centos1 48041616 Sep  8 16:12 docker
-rwxr-xr-x. 1 centos1 centos1 57561400 Sep  8 16:12 dockerd
-rwxr-xr-x. 1 centos1 centos1   704520 Sep  8 16:12 docker-init
-rwxr-xr-x. 1 centos1 centos1  2555160 Sep  8 16:12 docker-proxy
-rwxr-xr-x. 1 centos1 centos1 13862888 Sep  8 16:12 runc

#docker近期新版本多了containerd和runc

#由于二进制安装少了服务脚本,我们可以从刚才yum安装方式的脚本拷贝副本过来
#经过测试docker.socket docker.service containerd.service必须要拷贝
#如果自己想测试,就可以先拷贝一个docker.service,然后启动看看报错原因
[root@node2 system]# scp 192.168.213.133:/usr/lib/systemd/system/container*  /usr/lib/systemd/system
[root@node2 system]# scp 192.168.213.133:/usr/lib/systemd/system/docker* /usr/lib/systemd/system

[root@node2 system]# cd /usr/lib/systemd/system
[root@node2 system]# ll | grep docker
-rw-r--r--. 1 root root 1709 Sep 15 04:10 docker.service
[root@node2 system]# 


#因为服务脚本里面services的Excestart 部分显示docker启动命令放在/usr/bin下面,所以我们既可以在那个目录下面放置对应脚本文件,也可以创建软链接在/usr/bin下面

[root@node2 system]# ln  -sv  /usr/local/docker/*   /usr/bin
‘/usr/bin/containerd’ -> ‘/usr/local/docker/containerd’
‘/usr/bin/containerd-shim’ -> ‘/usr/local/docker/containerd-shim’
‘/usr/bin/containerd-shim-runc-v2’ -> ‘/usr/local/docker/containerd-shim-runc-v2’
‘/usr/bin/ctr’ -> ‘/usr/local/docker/ctr’
‘/usr/bin/docker’ -> ‘/usr/local/docker/docker’
‘/usr/bin/dockerd’ -> ‘/usr/local/docker/dockerd’
‘/usr/bin/docker-init’ -> ‘/usr/local/docker/docker-init’
‘/usr/bin/docker-proxy’ -> ‘/usr/local/docker/docker-proxy’

#而且新版本需要创建一个组
[root@node2 system]# groupadd -r docker
[root@node2 system]# systemctl daemon-reload 


docker.socket

[root@node2 system]# cat docker.socket 
[Unit]
Description=Docker Socket for the API

[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target

docker.service

[root@node2 system]# cat docker.service 
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service

[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 -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3

# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s

# 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

# Comment TasksMax if your systemd version does not support it.
# Only systemd 226 and above support this option.
TasksMax=infinity

# 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
OOMScoreAdjust=-500

[Install]
WantedBy=multi-user.target

containerd.service

[root@node2 system]# cat containerd.service 
# Copyright The containerd Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
# Comment TasksMax if your systemd version does not supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target


你可能感兴趣的:(docker,linux,运维,容器,云原生)