• 当我只有一个代理,我该如何从内网搭建一个docker环境


    1.环境:

    1) 内网docker服务器:192.168.123.1,操作系统为:redhat 7.9
    2) 代理服务器(可通外网):192.168.110.2,操作系统为:redhat 7.9
    
    • 1
    • 2

    2.代理配置

    代理在这里我们使用的nginx,主要用于正向代理,将外部网址代理到内网,正向代理的原理和模块这里就不具体讲了,其配置为:

    http模块中:
    server {
        resolver 61.139.2.69;
        listen  9099;
        resolver_timeout 30s;
        proxy_connect;
        proxy_connect_allow 443 80;
        proxy_connect_connect_timeout 20s;
        proxy_connect_read_timeout 20s;
        proxy_connect_send_timeout 20s;
        location / {
            proxy_pass $scheme://$http_host$request_uri;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3.内网docker服务器:

    1. 设置代理
    echo 'export http_proxy=http://192.168.110.2:9099
    export https_proxy=http://192.168.110.2:9099
    export no_proxy=localhost,127.0.0.1' >> /etc/profile && source /etc/profile
    
    • 1
    • 2
    • 3
    1. 测试代理是否生效
    curl http://nginx.org
    curl https://www.baidu.com
    
    • 1
    • 2

    当出现正常的网页访问则证明生效

    4.更新centos镜像站(参考阿里云centos镜像配置:https://developer.aliyun.com/mirror/):

    1. 由于我们使用的是redhat 7.9,我们可能需要使用到centos中的一些包作为支持,因此我们需要先配置centos的镜像源
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    
    • 1
    1. 修改下载的Centos-7.repo文件
      将Centos-7.repo的$releasever修改为7
    vi /etc/yum.repos.d/Centos-7.repo
    
    输入冒号,然后输入
    %s/releaserver/7/g
    替换整个文件中的关键字
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 加载缓存
    yum clean all && yum clean all
    
    • 1

    5.安装docker-ce(参考阿里云网站)

    1. 安装必要的一些系统工具
    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    • 1
    1. 添加软件源信息
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
    
    • 1
    • 2
    1. 更新源并安装docker-ce
    更新源:
    yum makecache fast
    
    安装默认版本软件,官方默认使用最新的版本:
    yum -y install docker-ce
    
    查询并安装指定版本:
    yum list docker-ce.x86_64 --showduplicates | sort -r
    yum -y install docker-ce-[VERSION]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 开启docker
    systemctl start docker
    systemctl enable docker
    
    • 1
    • 2
    1. 验证查询docker版本
    docker version
    
    • 1

    6.下载镜像

    1. 由于我们使用了代理,因此在内网服务器上,如果直接从镜像站下载镜像,则无法正常解析,则会报错:
    Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup  registry-1.docker.io on [::1]:53 read udp [::1]:45388->[::1]:53: read: connection refused
    
    • 1

    此时我们需要修改docker的服务配置,加入代理配置,从而正确解析域名:

    查看服务,找到服务配置文件:
    systemctl status docker
    修改服务配置文件:
    vi /usr/lib/systemd/system/docker.service
    在[Service]下加入:
    Enviroment="HTTP_PROXY=http://192.168.110.2:9099/" "HTTPS_PROXY=http://192.168.110.2:9099/" "NO_PROXY=localhost,127.0.0.1,*.docker.io.*,*.docker.com"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 重新加载并重启docker
    systemctl daemon-reload
    systemctl restart docker
    
    • 1
    • 2
    1. 拉取镜像测试
    docker pull ubuntu
    
    • 1

    7.配置加速器(参考阿里云网站)

    通过默认的镜像站获取镜像可能会比较慢,因此,我们可以配置国内的镜像站,从而加速镜像的拉取

    登陆阿里云,搜索“容器镜像服务”,进入后点击“管理控制台”,找到“镜像工具”->“镜像加速器”,复制镜像加速器连接,配置内网服务器镜像daemon.json文件
    
    tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://bgx0ltz2.mirror.aliyuncs.com"]
    }
    EOF
    
    systemctl daemon-reload
    systemctl restart docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    RocketMq(三)springBoot集成rocketMq
    大数计算:e^1000/300!
    jfif转换jpg,jfif图片格式怎么转换jpg?
    2.CSS选择器
    机器人仿真-gazebo学习笔记(5)添加Gazebo属性
    简单解析hyperf-TCP-RPC-Json请求的数据结构
    doccano安装问题
    uniapp 解决请求出现 /sockjs-node/info?t=问题
    人脸识别顶会论文及源码合集,含2023最新
    【Java八股文总结】之多线程
  • 原文地址:https://blog.csdn.net/wx370092877/article/details/134399292