CentOS7.6离线安装docker
2019/10/24,docker
摘要:CentOS 7.6中离线安装docker 18.06.3以及docker-compose 1.24.1
在线安装可参照 文档
Ubuntu18.04离线安装docker可以参考博客Ubuntu18.04通过deb包离线安装docker-ce
所需环境
1.CentOS 7.6,内核版本需要大于3.10(使用uname -r查看内核版本)
2.docker安装包18.06.3(19版本我在使用中报了oci runtime的错误,但是18版本没问题)
建立安装脚本
将docker-18.06.3-ce.tgz传输到CentOS系统后,同目录下新建脚本install-docker.sh,输入以下内容:
#!/bin/sh
usage(){
echo "使用方法: $0 FILE_NAME_DOCKER_CE_TAR_GZ"
echo " $0 docker-18.06.3-ce.tgz"
echo "Get docker-ce binary from: https://download.docker.com/linux/static/stable/x86_64/"
echo "eg: wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz"
echo ""
}
SYSTEMDDIR=/usr/lib/systemd/system
SERVICEFILE=docker.service
DOCKERDIR=/usr/bin
DOCKERBIN=docker
SERVICENAME=docker
if [ $# -ne 1 ]; then
usage
exit 1
else
FILETARGZ="$1"
fi
if [ ! -f ${FILETARGZ} ]; then
echo "Docker binary tgz files does not exist, please check it"
echo "Get docker-ce binary from: https://download.docker.com/linux/static/stable/x86_64/"
echo "eg: wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz"
exit 1
fi
echo "##unzip : tar xvpf ${FILETARGZ}"
tar xvpf ${FILETARGZ}
echo
echo "##binary : ${DOCKERBIN} copy to ${DOCKERDIR}"
cp -p ${DOCKERBIN}/* ${DOCKERDIR} >/dev/null 2>&1
which ${DOCKERBIN}
echo "##systemd service: ${SERVICEFILE}"
echo "##docker.service: create docker systemd file"
cat >${SYSTEMDDIR}/${SERVICEFILE} <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target docker.socket
[Service]
Type=notify
EnvironmentFile=-/run/flannel/docker
WorkingDirectory=/usr/local/bin
ExecStart=/usr/bin/dockerd \
-H tcp://0.0.0.0:4243 \
-H unix:///var/run/docker.sock \
--selinux-enabled=false \
--log-opt max-size=1g
ExecReload=/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=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# 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
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
echo ""
systemctl daemon-reload
echo "##Service status: ${SERVICENAME}"
systemctl status ${SERVICENAME}
echo "##Service restart: ${SERVICENAME}"
systemctl restart ${SERVICENAME}
echo "##Service status: ${SERVICENAME}"
systemctl status ${SERVICENAME}
echo "##Service enabled: ${SERVICENAME}"
systemctl enable ${SERVICENAME}
cat >/etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
swapoff -a
iptables -P FORWARD ACCEPT
sysctl --system
systemctl daemon-reload
systemctl restart docker.service
echo "## docker version"
docker version
运行安装脚本
脚本新建好后应该如下图所示

接下来运行脚本安装:
sudo sh install-docker.sh docker-18.06.3-ce.tgz
安装会自动启用docker服务,自启动等。最后输出docker版本即表示已经安装成功

如果是非root账号,此时使用docker run等命令总是需要sudo权限,需要给当前用户添加docker权限

添加docker权限
建立docker组:
sudo groupadd docker
将当前用户加入 docker 组:
sudo usermod -aG docker $USER
重启 docker 服务:
sudo service docker restart
此时断开ssh重新连接(或者退出当前终端并重新登录)
运行docker run不再提示没有权限
安装docker-compose
以下命令会联网下载docker-compose到 /usr/local/bin/目录下:
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#或使用github的地址(速度可能会慢一点)
#sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
经过我自己的验证,非root账户使用上面两个指令是报错的:
-bash: /usr/local/bin/docker-compose: Permission denied,提示权限拒绝
下载到当前文件夹,之后在copy到/usr/local/bin/就好了
如果不能联网,可以在别的系统下下载好,拷贝到/usr/local/bin/目录下也是可以的:
sudo cp -r docker-compose /usr/local/bin/docker-compose
接下来对二进制包赋予权限:
```bash
sudo chmod +x /usr/local/bin/docker-compose
软链接到/usr/bin/下,防止sudo docker-compose出现command not found:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
完成后,docker-compose即可使用:
docker-compose --version
CentOS7.6离线安装docker的更多相关文章
- 【从零开始搭建K8S】【第一篇】CentOS7.6离线安装Docker(手动安装以及基于yum本地源安装)
下载CentOS7.6以及最小化安装CentOS7.6版本.由于CentOS属于开源软件,在国内也有很多的mirror站点可供下载,我选择的是华为站点进行下载:http://mirrors.huawe ...
- centos7.5离线安装Docker及容器运行报OCI runtime create failed 问题定位与解决
前言 接上篇 <记一次centos挂载ceph存储的坑> 服务器重做了centos7.5版本的操作系统,剩下就是安装docker,考虑yum安装耗时较长,我一般都是直接安装二进制版本doc ...
- Ubuntu 离线安装 docker
1.下载离线包,网址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ 离线安装docker需要下载3个 ...
- ubuntu16.04 离线安装docker ce
ubuntu离线安装 docker17.05.0-ce 离线安装 不想自己下载的小伙伴可以从以下地址下载几个软件包: 链接: https://pan.baidu.com/s/1lF7t7ciMhUnW ...
- Linux下离线安装Docker
Linux下离线安装Docker 一.基础环境 1.操作系统:CentOS 7.3 2.Docker版本:18.06.1 官方下载地址(打不开可能需要***) 3.百度云Docker 18.06.1地 ...
- 在 Ubuntu 16.04 LTS 上 离线安装 Docker / Docker-compose
前情提要 今天上班后,突然接到现场的工程师的电话: XXX的现场环境组的的局域网,上不了互联网.bla bla bla..... 如果需要安装其他软件的话,只能是自己带过去安装... 听完现场工程师的 ...
- 离线安装docker(RedHat7.4)
离线安装docker(RedHat7.4) docker 1. 下载地址 2. 解压并注册为service 1. 下载地址 官网下载地址:下载 官网文档地址:文档 2. 解压并注册为service 下 ...
- Ubuntu18.04 离线安装 docker
Ubuntu18.04 离线安装 dockerhttps://blog.csdn.net/u012814856/article/details/804231851. 将下载下来的文件夹中的 4 个文件 ...
- Linux下离线安装docker与fastDFS
一.Linux下离线安装Docker 基础环境 1.操作系统:CentOS 7 2.Docker版本:docker-19.03.9.tgz 官方下载地址(打不开可能需要科学-上网) 3.官方参考文档: ...
随机推荐
- Oncomine 数据库
网址 https://www.oncomine.org/resource/login.html Oncomine 是目前世界上最大的癌基因芯片数据库和整合数据挖掘平台,旨在挖掘癌症基因信息.Onco ...
- Spring项目中Properties不能加载多个的问题
A模块和B模块都分别拥有自己的Spring XML配置,并分别拥有自己的配置文件: A模块 A模块的Spring配置文件如下: <?xml version="1.0" enc ...
- Curator框架实现ZooKeeper分布式锁
排他锁(X) 这里主要讲讲分布式锁中的排他锁.排他锁(Exclusive Locks,简称X锁),又称为写锁或独占锁,是一种基本的锁类型.如果事务T1对数据对象O1加上了排他锁,那么在整个加锁期间,只 ...
- (原创)C++ 同步队列
(原创)C++ 同步队列 同步队列作为一个线程安全的数据共享区,经常用于线程之间数据读取,比如半同步半异步线程池的同步队列. 其实做起来比较简单,要用到list.锁和条件变量,条件变量的作用是在队列满 ...
- js代码突然在花括号回车自动多加了一个大括号
js代码突然在花括号回车自动多加了一个大括号. 检查发现,前面有一个行带有左括号的注释行.
- Jackson的基本用法与拓展
目录 一.先搞两个测试需要使用的类 二.简单操作:obj与json互转 2.1.对象转json字符串 2.2.json字符串转对象 三.拓展需求 3.1.对象转json时,忽略某个字段 3.2.对象转 ...
- 【错误解决】UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 840: illegal multibyte sequence
原文来源:https://www.zhihu.com/question/22699590 编码问题错误,读入文件的时候指定编码即可. with open(fname, encoding='utf-8' ...
- 共享和独享IP的VPS的区别?
共享IP的VPS主机: 顾名思义,共享IP的VPS主机的最大特性即是若干VPS主机用户共享同一个公网IP地址,此目的显然是节省有限的IP地址资源,有效应对Ipv4枯竭的问题.其基本原理是,所有VPS主 ...
- 细说RESTful API之幂等性
目录 接口幂等性的含义 接口符合幂等性有什么用处 HTTP方法的幂等性与安全性 如何设计符合幂等性的接口 写在最后 接口幂等性的含义 幂等性原本是数学中的含义,表达式的是N次变换与1次变换的结果相同. ...
- DL/T645-2007 及 Modbus-RTU智能电表调试工具
最近在做微信门禁,智能电表采集,智能水表采集项目时,发现网上很多调试工具用起来不顺手,电脑里面起码下了五六个软件. 好不容易弄清楚了,就自己写一个工具,方便自己使用,也顺便造福一下其他人吧