写在前边考虑到很多生产环境是内网,不允许外网访问的 。恰好我司正是这种场景 , 写一篇二进制方式安装Docker的教程,用来帮助实施同事解决容器部署的第一个难关 。
本文将以二进制安装方式,在CentOS7.9上安装Docker 19.03.9,具有一定的通用性,其他版本也可参考本文 。让我们开始吧 。
适合场景
- 无法访问外网的服务器环境
- 内网没有Docker软件源
- 需要离线安装Docker
- 使用rpm或deb等Docker安装包出现依赖地狱的情况,而实施人员无力解决
- 支持Systemd服务配置
- 支持多种架构:aarch64/armel/armhf/ppc64le/s390x/x86_64
![二进制安装Dokcer](http://img.zhejianglong.com/231018/2153243R7-0.png)
文章插图
将压缩包上传到服务器
二进制安装Docker在服务器上,解压压缩包
tar -xvf docker-19.03.0-ce.tgz
【二进制安装Dokcer】将解压出的docker/bin目录下的可执行文件复制到/usr/bincp 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/,禁止爬虫与未经允许的洗稿 。
推荐阅读
- ansible应用之安装elk框架
- RedHat7.6安装mysql8步骤
- app自动化测试环境安装
- 【ps下载与安装】Adobe Photoshop 2022 for Mac v23.5 中文永久版下载 Ps图像编辑软件
- Cenots7 离线安装部署PostgreSQL
- win10本地python第三方库安装成功,但是pycharm项目无法使用解决方案
- VMware16安装RedHat7.6步骤
- 快速安装 服务器之Apollo单机部署
- 安装与配置FTP服务器
- linux安装达梦数据库8