王小那个鑫
作者王小那个鑫·2023-11-15 09:22
数据库运维工程师·乐山市商业银行

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

字数 2583阅读 1472评论 0赞 5

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

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

2) 测试代理是否生效

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

2) 修改下载的Centos-7.repo文件
将Centos-7.repo的$releasever修改为7

vi /etc/yum.repos.d/Centos-7.repo
输入冒号,然后输入
%s/releaserver/7/g
替换整个文件中的关键字

3) 加载缓存

yum clean all && yum clean all

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

1) 安装必要的一些系统工具

yum install -y yum-utils device-mapper-persistent-data lvm2

2) 添加软件源信息

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

3) 更新源并安装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]

4) 开启docker

systemctl start docker
systemctl enable docker

5) 验证查询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://192.168.110.2:9099/" "HTTPS_PROXY=http://192.168.110.2:9099/" "NO_PROXY=localhost,127.0.0.1,*.docker.io.*,*.docker.com"

2) 重新加载并重启docker

systemctl daemon-reload
systemctl restart docker

3) 拉取镜像测试

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

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广