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,输入以下内容:

  1. #!/bin/sh
  2. usage(){
  3. echo "使用方法: $0 FILE_NAME_DOCKER_CE_TAR_GZ"
  4. echo " $0 docker-18.06.3-ce.tgz"
  5. echo "Get docker-ce binary from: https://download.docker.com/linux/static/stable/x86_64/"
  6. echo "eg: wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz"
  7. echo ""
  8. }
  9. SYSTEMDDIR=/usr/lib/systemd/system
  10. SERVICEFILE=docker.service
  11. DOCKERDIR=/usr/bin
  12. DOCKERBIN=docker
  13. SERVICENAME=docker
  14. if [ $# -ne 1 ]; then
  15. usage
  16. exit 1
  17. else
  18. FILETARGZ="$1"
  19. fi
  20. if [ ! -f ${FILETARGZ} ]; then
  21. echo "Docker binary tgz files does not exist, please check it"
  22. echo "Get docker-ce binary from: https://download.docker.com/linux/static/stable/x86_64/"
  23. echo "eg: wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz"
  24. exit 1
  25. fi
  26. echo "##unzip : tar xvpf ${FILETARGZ}"
  27. tar xvpf ${FILETARGZ}
  28. echo
  29. echo "##binary : ${DOCKERBIN} copy to ${DOCKERDIR}"
  30. cp -p ${DOCKERBIN}/* ${DOCKERDIR} >/dev/null 2>&1
  31. which ${DOCKERBIN}
  32. echo "##systemd service: ${SERVICEFILE}"
  33. echo "##docker.service: create docker systemd file"
  34. cat >${SYSTEMDDIR}/${SERVICEFILE} <<EOF
  35. [Unit]
  36. Description=Docker Application Container Engine
  37. Documentation=http://docs.docker.com
  38. After=network.target docker.socket
  39. [Service]
  40. Type=notify
  41. EnvironmentFile=-/run/flannel/docker
  42. WorkingDirectory=/usr/local/bin
  43. ExecStart=/usr/bin/dockerd \
  44. -H tcp://0.0.0.0:4243 \
  45. -H unix:///var/run/docker.sock \
  46. --selinux-enabled=false \
  47. --log-opt max-size=1g
  48. ExecReload=/bin/kill -s HUP $MAINPID
  49. # Having non-zero Limit*s causes performance problems due to accounting overhead
  50. # in the kernel. We recommend using cgroups to do container-local accounting.
  51. LimitNOFILE=infinity
  52. LimitNPROC=infinity
  53. LimitCORE=infinity
  54. # Uncomment TasksMax if your systemd version supports it.
  55. # Only systemd 226 and above support this version.
  56. #TasksMax=infinity
  57. TimeoutStartSec=0
  58. # set delegate yes so that systemd does not reset the cgroups of docker containers
  59. Delegate=yes
  60. # kill only the docker process, not all processes in the cgroup
  61. KillMode=process
  62. Restart=on-failure
  63. [Install]
  64. WantedBy=multi-user.target
  65. EOF
  66. echo ""
  67. systemctl daemon-reload
  68. echo "##Service status: ${SERVICENAME}"
  69. systemctl status ${SERVICENAME}
  70. echo "##Service restart: ${SERVICENAME}"
  71. systemctl restart ${SERVICENAME}
  72. echo "##Service status: ${SERVICENAME}"
  73. systemctl status ${SERVICENAME}
  74. echo "##Service enabled: ${SERVICENAME}"
  75. systemctl enable ${SERVICENAME}
  76. cat >/etc/docker/daemon.json <<EOF
  77. {
  78. "registry-mirrors": ["http://hub-mirror.c.163.com"]
  79. }
  80. EOF
  81. swapoff -a
  82. iptables -P FORWARD ACCEPT
  83. sysctl --system
  84. systemctl daemon-reload
  85. systemctl restart docker.service
  86. echo "## docker version"
  87. docker version

运行安装脚本

脚本新建好后应该如下图所示



接下来运行脚本安装:

  1. sudo sh install-docker.sh docker-18.06.3-ce.tgz

安装会自动启用docker服务,自启动等。最后输出docker版本即表示已经安装成功



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

添加docker权限

建立docker组:

  1. sudo groupadd docker

将当前用户加入 docker 组:

  1. sudo usermod -aG docker $USER

重启 docker 服务:

  1. sudo service docker restart

此时断开ssh重新连接(或者退出当前终端并重新登录)

运行docker run不再提示没有权限

安装docker-compose

以下命令会联网下载docker-compose到 /usr/local/bin/目录下:

  1. 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
  2. #或使用github的地址(速度可能会慢一点)
  3. #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


  1. 接下来对二进制包赋予权限:
  2. ```bash
  3. sudo chmod +x /usr/local/bin/docker-compose

软链接到/usr/bin/下,防止sudo docker-compose出现command not found:

  1. sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

完成后,docker-compose即可使用:

  1. docker-compose --version

CentOS7.6离线安装docker的更多相关文章

  1. 【从零开始搭建K8S】【第一篇】CentOS7.6离线安装Docker(手动安装以及基于yum本地源安装)

    下载CentOS7.6以及最小化安装CentOS7.6版本.由于CentOS属于开源软件,在国内也有很多的mirror站点可供下载,我选择的是华为站点进行下载:http://mirrors.huawe ...

  2. centos7.5离线安装Docker及容器运行报OCI runtime create failed 问题定位与解决

    前言 接上篇 <记一次centos挂载ceph存储的坑> 服务器重做了centos7.5版本的操作系统,剩下就是安装docker,考虑yum安装耗时较长,我一般都是直接安装二进制版本doc ...

  3. Ubuntu 离线安装 docker

    1.下载离线包,网址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ 离线安装docker需要下载3个 ...

  4. ubuntu16.04 离线安装docker ce

    ubuntu离线安装 docker17.05.0-ce 离线安装 不想自己下载的小伙伴可以从以下地址下载几个软件包: 链接: https://pan.baidu.com/s/1lF7t7ciMhUnW ...

  5. Linux下离线安装Docker

    Linux下离线安装Docker 一.基础环境 1.操作系统:CentOS 7.3 2.Docker版本:18.06.1 官方下载地址(打不开可能需要***) 3.百度云Docker 18.06.1地 ...

  6. 在 Ubuntu 16.04 LTS 上 离线安装 Docker / Docker-compose

    前情提要 今天上班后,突然接到现场的工程师的电话: XXX的现场环境组的的局域网,上不了互联网.bla bla bla..... 如果需要安装其他软件的话,只能是自己带过去安装... 听完现场工程师的 ...

  7. 离线安装docker(RedHat7.4)

    离线安装docker(RedHat7.4) docker 1. 下载地址 2. 解压并注册为service 1. 下载地址 官网下载地址:下载 官网文档地址:文档 2. 解压并注册为service 下 ...

  8. Ubuntu18.04 离线安装 docker

    Ubuntu18.04 离线安装 dockerhttps://blog.csdn.net/u012814856/article/details/804231851. 将下载下来的文件夹中的 4 个文件 ...

  9. Linux下离线安装docker与fastDFS

    一.Linux下离线安装Docker 基础环境 1.操作系统:CentOS 7 2.Docker版本:docker-19.03.9.tgz 官方下载地址(打不开可能需要科学-上网) 3.官方参考文档: ...

随机推荐

  1. R语言 rds文件 和 文本文件 转换

    library(data.table) ## 读取 rds 文件,然后保存为文本文件 data <- readRDS("pneumonia_pathogens.rds") w ...

  2. python字符串转整形异常

    python字符串转整形异常 问题 在使用int("xx")转化字符串为整形时,如果字符串是float形式,这样转化会异常 int('3.0') Traceback (most r ...

  3. java核心技术卷上学习笔记

    9月5日 学习章节:第二章 Java程序设计环境 学习包括Java的安装.命令行工具.IDE.图形化开发环境等. 9月6日 学习章节:第三章 Java的基本程序设计结构 学习包括注释.数据类型.变量. ...

  4. 主题模型TopicModel:主题模型LDA的应用

    http://blog.csdn.net/pipisorry/article/details/45665779 主题模型LDA的应用 拿到这些topic后继续后面的这些应用怎么做呢:除了推断出这些主题 ...

  5. docker swarm 集群搭建

    创建一个集群 [vagrant@node1 ~]$ docker swarm init --advertise-addr 192.168.9.101 Swarm initialized: curren ...

  6. PHP商品秒杀问题解决方案实例详解【mysql与redis】

    本文实例讲述了PHP商品秒杀问题解决方案.分享给大家供大家参考,具体如下: 引言 假设num是存储在数据库中的字段,保存了被秒杀产品的剩余数量. if($num > 0){ //用户抢购成功,记 ...

  7. 图片验证码识别:ModuleNotFoundError: No module named 'ShowapiRequest'

    请求示例 # python3.6.5 # 需要引入requests包 :运行终端->进入python/Scripts ->输入:pip install requests from Show ...

  8. pipenv使用学习

    参考https://realpython.com/pipenv-guide/#package-distribution Pipenv: A Guide to the New Python Packag ...

  9. c++ Array运用实例

    myprint.hpp #include <iostream> #include <string> template <typename T> inline voi ...

  10. layui弹出层layer的area过大被遮挡

     layer弹出窗口在弹出时指定了area,弹出后,如果当前页面(iframe)大小比弹出的窗口小,那么就会出现无法操作弹出窗口的尴尬情况.如图: 弹出窗口比当前页面大,这时,唯有放大整个页面才能看到 ...