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
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服务可能会报如下错误:
解决方法
# 修改
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)
本文来自博客园,作者:MegaloBox,转载请注明原文链接:https://www.cnblogs.com/cpw6/p/14168279.html
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 当数据爆炸遇上SQL Server:优化策略全链路解析
· 记录一次线上问题排查:JDK序列化问题
· 微服务之间有哪些调用方式?
· 记一次SQL隐式转换导致精度丢失问题的排查
· dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
· 一个基于 C# Unity 开发的金庸群侠传 3D 版,直呼牛逼!
· SQL Server 2025 中的改进
· 向商界大佬一样管理技术工作 - 以团队换将+技术重构为例
· 用c#从头写一个AI agent,实现企业内部自然语言数据统计分析(三)--一个综合的例子
· Qwen3接入评测,最强开源模型更懂Graph了吗?