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

news/2024/7/24 2:21:57 标签: docker, 容器, 运维

1.环境:

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

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;
    }
}

docker_24">3.内网docker服务器:

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

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

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. 修改下载的Centos-7.repo文件
    将Centos-7.repo的$releasever修改为7
vi /etc/yum.repos.d/Centos-7.repo

输入冒号,然后输入
%s/releaserver/7/g
替换整个文件中的关键字

  1. 加载缓存
yum clean all && yum clean all

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

  1. 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
  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. 更新源并安装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. 开启docker
systemctl start docker
systemctl enable docker
  1. 验证查询docker版本
docker version

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

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

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

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

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

登陆阿里云,搜索“容器镜像服务”,进入后点击“管理控制台”,找到“镜像工具”->“镜像加速器”,复制镜像加速器连接,配置内网服务器镜像daemon.json文件

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://bgx0ltz2.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload
systemctl restart docker

http://www.niftyadmin.cn/n/5179266.html

相关文章

Linux 本地zabbix结合内网穿透工具实现安全远程访问浏览器

前言 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数&#xff0c;保证服务器系统的安全运营&#xff1b;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 本地zabbix web管理界面限制在只能局域…

Protobuf 语法

Protobuf语法 1.1.1. 基本规范 文件以.proto做为文件后缀&#xff0c;除结构定义外的语句以分号结尾 结构定义可以包含&#xff1a;message、service、enum rpc方法定义结尾的分号可有可无 Message命名采用驼峰命名方式&#xff0c;字段命名采用小写字母加下划线分隔方式 …

Springboot项目返回数据统一封装

Springboot项目返回数据统一封装,支持swagger。 正常swagger会根据数据库表的注释显示对应的参数释义等。但当我们使用统一接口返回map时&#xff0c;部分注释等信息会被掩盖消失。在此提供三个java类即可满足统一封装返回接口&#xff0c;也可显示对应的swagger释义等。 1.Er…

表单提交是

<template> <el-form :model"form" :rules"rules" ref"form" label-width"120px"> <el-form-item label"姓名" prop"name"> <el-input v-model"form.name"></el-input&g…

易点易动固定资产管理系统助您轻松应对复杂的固定资产管理挑战

在现代企业运营中&#xff0c;固定资产是企业的重要财产&#xff0c;对于企业的发展和运营至关重要。然而&#xff0c;随着企业规模的扩大和业务的复杂化&#xff0c;固定资产管理面临着越来越多的挑战。传统的手工管理方法已经无法满足企业的需求&#xff0c;因此&#xff0c;…

Java开源工具库使用之线上监控诊断库Arthas

文章目录 前言一、介绍1.1 功能1.2 原理 二、安装使用2.1 下载2.2 使用 三、常用3.1 实时查看3.2 追踪查看3.3 辅助命令3.4 热更新3.5 监控 四、实战4.1 CPU/内存占用过高4.2 接口耗时高4.3 找到类所在jar4.4 查找类的实例4.5 生成火焰图 参考 前言 在现代软件开发中&#xff…

vue实现鼠标经过显示悬浮框效果,使用Vue的v-show指令和CSS的:hover伪类,利用Vue的数据绑定

实现鼠标悬浮框效果的一种常用方式是使用Vue的v-show指令和CSS的:hover伪类。利用Vue的数据绑定&#xff0c;实现鼠标悬浮时显示悬浮框&#xff0c;鼠标移开时隐藏悬浮框的效果。以下是实现该效果的步骤&#xff1a; 步骤一&#xff1a;在Vue组件中加入需要显示的悬浮框和绑定…

thinkphp 自定义错误页面

在访问无效的UI 这个效果不好&#xff0c;要改成自定义的 <?php namespace app\controller;class ErrorController {public function __call($method,$args){return error request!;} }之后就是提示