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

Stella981
• 阅读 919

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

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

        mkdir /repo
        cd /repo 
    
    
        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的虚拟主机:

server {
    listen       80;
    server_name  download.docker.com; # 虚拟主机的主机名

    #charset koi8-r;

    location / {
        root   /repo/download.docker.com/; #目录指向同步的目录
        autoindex on;
    }
}

需要注意的是download.docker.com需要内网DNS进行解析或者是手动进行本地的DNS映射 手动指定linux上就在/etc/hosts文件中追加记录即可,如图: Docker学习系列之一——私有docker yum源环境搭建

  • step 3 yum源的配置

检测机器是否能访问download.docker.com Docker学习系列之一——私有docker yum源环境搭建 如果不能访问,则在/etc/hosts上追加记录进行映射或者联系网络管理员查看DNS配置是否正确

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

cd /etc/yum.repos.d/
curl 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,内容如下:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=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 docker
ExecStart=/usr/bin/dockerd --data-root=/data/docker 
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 the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

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

systemctl enable docker.service 
systemctl start docker.service 


docker info  #查看docker的信息

小结:

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Docker 安装
(CentOS7)使用yum方式安装docker:root@localhost~$curlhttps://download.docker.com/linux/centos/dockerce.repoo/etc/yum.repos.d/docker.reporoot@localhost~$yum
Stella981 Stella981
3年前
Docker安装Onlyoffice并更新中文字体的办法
必要条件:操作系统如果选择centos必须选择7以上(旧版本的docker拷贝文件命令有bug)1、安装docker(yum安装即可,yum版本要在1.8以上),并启动docker服务2、在docker下下载onlyoffice镜像,用的是pull命令dockerpullonlyoffice/documentserver3
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这