Docker学习系列之一——私有docker yum源环境搭建

出于内外网隔离的需求或者外网网络性能等需求,需要在公司内部搭建docker的yum私有源,方便内部进行docker的安装时直接使用yum指令进行

  • step 1 同步远程的文件 找一台磁盘空间足够大且能够访问download.docker.com的服务器,将download.docker.com的全部静态资源进行同步,使用如下指令:

    1 mkdir /repo 2 cd /repo 3 4 5 wget -m https://download.docker.com/linux/centos/7/x86_64/stable/

    如果只想同步x86_64/stable下的内容可以使用

    	wget -m --no-parent https://download.docker.com/linux/centos/7/x86_64/stable/
    

    全部同步下来大概100G的空间

  • step 2 配置Nginx,内网可以通过http进行访问

Nginx是很好的静态资源访问的HTTP服务器

Nginx的安装可以参见网络资源,配置nginx的虚拟主机:

1server { 2 listen 80; 3 server_name download.docker.com; # 虚拟主机的主机名 4 5 #charset koi8-r; 6 7 location / { 8 root /repo/download.docker.com/; #目录指向同步的目录 9 autoindex on; 10 } 11} 12 13

需要注意的是download.docker.com需要内网DNS进行解析或者是手动进行本地的DNS映射 手动指定linux上就在/etc/hosts文件中追加记录即可,如图:

  • step 3 yum源的配置

检测机器是否能访问download.docker.com 如果不能访问,则在/etc/hosts上追加记录进行映射或者联系网络管理员查看DNS配置是否正确

在客户机器上的/etc/yum.repos.d/目录下创建文件 docker-ce.repo文件,也可以直接通过curl下载:

1cd /etc/yum.repos.d/ 2curl http://download.docker.com/linux/centos/docker-ce.repo -o docker-ce.repo
  • step 4 安装docker

    yum -y install docker-ce

一般来说都能安装成功

  • step 5 启动dockerd

进入到/lib/systemd/system目录中,添加文件docker.service,内容如下:

1[Unit] 2Description=Docker Application Container Engine 3Documentation=https://docs.docker.com 4After=network-online.target firewalld.service 5Wants=network-online.target 6 7[Service] 8Type=notify 9# the default is not to use systemd for cgroups because the delegate issues still 10# exists and systemd currently does not support the cgroup feature set required 11# for containers run by docker 12ExecStart=/usr/bin/dockerd --data-root=/data/docker 13ExecReload=/bin/kill -s HUP $MAINPID 14# Having non-zero Limit*s causes performance problems due to accounting overhead 15# in the kernel. We recommend using cgroups to do container-local accounting. 16LimitNOFILE=infinity 17LimitNPROC=infinity 18LimitCORE=infinity 19# Uncomment TasksMax if your systemd version supports it. 20# Only systemd 226 and above support this version. 21#TasksMax=infinity 22TimeoutStartSec=0 23# set delegate yes so that systemd does not reset the cgroups of docker containers 24Delegate=yes 25# kill only the docker process, not all processes in the cgroup 26KillMode=process 27# restart the docker process if it exits prematurely 28Restart=on-failure 29StartLimitBurst=3 30StartLimitInterval=60s 31 32[Install] 33WantedBy=multi-user.target

注意 --data-root对应的目录如果不存在启动会失败,也可以不指定--data-root,详细可以参考dockerd的配置选项

1systemctl enable docker.service 2systemctl start docker.service 3 4 5docker info #查看docker的信息 6

小结:

在内网环境下搭建私有的yum可以更加方便和快速的进行docker的安装,可以配合配置管理工具快速的部署多台docker服务器,下一篇会介绍如何使用nexus配置docker的私有registry和proxy registry,方便在内网直接拉去dockerhub上的镜像

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Docker 安装

(CentOS7)使用yum方式安装docker:root@localhost~$curlhttps://download.docker.com/linux/centos/dockerce.repoo/etc/yum.repos.d/docker.reporoot@localhost~$yum