Docker安装及配置

docker下载及安装

# 所需rpm包
docker-ce-cli-19.03.8-3.el7.x86_64.rpm
docker-ce-19.03.8-3.el7.x86_64.rpm
containerd.io-1.2.6-3.3.el7.x86_64.rpm
# rpm包下载地址
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
# 开始下载
$ cat > download << EOF
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.8-3.el7.x86_64.rpm
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.8-3.el7.x86_64.rpm
EOF
$ wget -i download
# 安装
$ rpm -Uvh *.rpm --nodeps --force

img

ps:启动的时候报错:error while loading shared libraries: libseccomp.so.2

解决办法:yum -y install libseccomp

docker安装之后默认的服务数据存放根路径为/var/lib/docker目录下,var目录默认使用的是根分区的磁盘空间;所以这是非常危险的事情;随着我们镜像、启动的容器实例开始增多的时候,磁盘所消耗的空间也会越来越大,所以我们必须要做数据迁移和修改docker服务的默认存储位置路径;有多种方式是可以修改docker默认存储目录路径的,但是最好是在docker安装完成后,第一时间便修改docker的默认存储位置路径为其他磁盘空间较大的目录(一般企业中为/data目录),规避迁移数据过程中所造成的风险。

方法1:

# 执行以下命令
mkdir -p /home/data/docker/lib
mkdir -p /etc/systemd/system/docker.service.d/
echo -e "[Service]\nExecStart=\nExecStart=/usr/bin/dockerd  --graph=/home/data/docker/lib/" > /etc/systemd/system/docker.service.d/devicemapper.conf
systemctl daemon-reload
systemctl start docker

方法2:

mkdir /home/data/docker/lib -p && mkdir /etc/docker/ && echo -e '{\n"graph":"/home/data/docker/lib"\n}' > /etc/docker/daemon.json && systemctl daemon-reload && systemctl start docker && docker info | grep "Dir"

PS:

# docker安装后修改数据存放目录
# 停止运行docker
docker stop 容器 && systemctl stop docker
# rsync同步文件
rsync -avz /var/lib/docker/ /home/data/docker/lib/
# 启动docker
systemctl daemon-reload && systemctl start docker

迁移数据并修改daemon.json后运行docker服务可能会报如下错误:

img

解决方法

# 修改
vi /usr/lib/systemd/system/docker.service

# 修改graph地址
ExecStart=/usr/bin/dockerd --graph=/home/data/docker/lib

# 运行docker
systemctl daemon-reload && systemctl start docker

daemon.json配置

[root@hadoop4 ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

registry-mirrors:镜像仓库

exec-opts:文件驱动(k8s默认是systemd,而docker默认是cgroupfs)

log-driver:日志驱动程序(docker默认就是json-file, 日志默认存放路径: /var/lib/docker/containers//-json.log)

log-opts:设置日志存储策略(max-size单容器日志上限500m; max-file单容器最多保留3份日志文件,分别是id+.json、id+1.json、id+2.json)

posted @ 2020-12-21 15:51  MegaloBox  阅读(407)  评论(0编辑  收藏  举报