写在前边考虑到很多生产环境是内网,不允许外网访问的 。恰好我司正是这种场景,写一篇二进制方式安装Docker的教程,用来帮助实施同事解决容器部署的第一个难关 。
本文将以二进制安装方式,在CentOS7.9上安装Docker 19.03.9,具有一定的通用性,其他版本也可参考本文 。让我们开始吧 。
适合场景
- 无法访问外网的服务器环境
- 内网没有Docker软件源
- 需要离线安装Docker
- 使用rpm或deb等Docker安装包出现依赖地狱的情况,而实施人员无力解决
- 支持Systemd服务配置
- 支持多种架构:aarch64/armel/armhf/ppc64le/s390x/x86_64
文章插图
将压缩包上传到服务器
二进制安装Docker在服务器上,解压压缩包
tar -xvf docker-19.03.0-ce.tgz
将解压出的docker/bin目录下的可执行文件复制到/usr/bin【二进制安装Dokcer】
cp docker/* /usr/bin/
将docker注册为 Systemd 的 servicecat > /etc/systemd/system/docker.service <<EOF[Unit]Description=Docker Application Container EngineDocumentation=https://docs.docker.comAfter=network-online.target firewalld.serviceWants=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 dockerExecStart=/usr/bin/dockerdExecReload=/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=infinityLimitNPROC=infinityLimitCORE=infinity# Uncomment TasksMax if your systemd version supports it.# Only systemd 226 and above support this version.#TasksMax=infinityTimeoutStartSec=0# set delegate yes so that systemd does not reset the cgroups of docker containersDelegate=yes# kill only the docker process, not all processes in the cgroupKillMode=process# restart the docker process if it exits prematurelyRestart=on-failureStartLimitBurst=3StartLimitInterval=60s[Install]WantedBy=multi-user.targetEOF
为 docker.service添加可执行权限chmod +x /etc/systemd/system/docker.service
设置docker存储目录到大硬盘目录、设置私有镜像仓库地址(可选,注意替换目录位置与私有镜像仓库URL)mkdir /etc/dockermkdir /data1/docker #/data1是大硬盘目录# 主要关注data-root的值是大硬盘目录存放docker相关文件的目录# insecure-registries后边的值是私有镜像仓库地址,多个私有镜像仓库地址配置格式为["仓库1","仓库2"]# exec-opts部分针对于部署k8s做的预配置,可以减少容器日志保存大小及配合kubelet使用systemdcat > /etc/docker/daemon.json <<EOF{"insecure-registries":["10.2.41.191:5000"],"data-root":"/data1/docker","exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "20m"},"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"]}EOF
启动docker并设置开机自启systemctl daemon-reloadsystemctl enable --now docker.service
验证安装结果systemctl status docker #查看docker服务状态docker -v #查看docker版本
本文同步发布在本人CSDN https://blog.csdn.net/u012586326 与 博客园 https://www.cnblogs.com/hellxz/ ,禁止爬虫与未经允许的洗稿 。
经验总结扩展阅读
- 2023年农历八月十七宜安装房门吗 2023年10月1日是安装房门的黄道吉日吗
- 2023年10月1日安装柱子好吗 2023年10月1日安装柱子好不好
- 2023年10月1日安装门户好不好 2023年农历八月十七宜安装门户吗
- 2023年10月1日是安装门框的黄道吉日吗 2023年10月1日适合安装门框吗
- 2023年10月1日是安装窗帘吉日吗 2023年10月1日安装窗帘好吗
- 2023年10月1日适合安装家电吗 2023年10月1日安装家电吉日一览表
- 2023年农历八月十七安装机器吉日 2023年10月1日安装机器好吗
- ansible应用之安装elk框架
- 2023年2月6日安装家电黄道吉日 2023年2月6日是安装家电吉日吗
- 2023年2月6日是安装机器的黄道吉日吗 2023年2月6日适合安装机器吗