使用http进行docker拉取镜像、构建镜像

背景

在进行本地docker hub使用过程中,docker hub使用http 协议提供服务。但docker默认使用https协议进行镜像拉取,使用过程中会出现报错,如下:
docker 报错
buildx 报错
上述两个问题均为docker拉取镜像使用的https,而提供镜像的hub 是http导致。

修改方式

docker 拉取镜像

方法一

1、添加或修改/etc/docker/daemon.json文件,添加insecure-registries字段,字段内添加hub服务地址。添加后文件内容如下:

{
        "registry-mirrors":[
                "https://docker.mirrors.ustc.edu.cn",
        "https://docker.awsl9527.cn"],
         "insecure-registries" : ["register-mirror-ip:port"]
}

2、重启docker服务

$ systemctl restart docker

方法二

1、查看当前系统docker服务启动配置,以centos系统为例:

$ cat /usr/lib/systemd/system/docker.service
...
[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/docker
# 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 \
          --host=fd:// \
          --exec-opt native.cgroupdriver=systemd \
          $OPTIONS
ExecReload=/bin/kill -s HUP $MAINPID
...

2、在文件中增加dockerd的启动参数--insecure-registry,参数后为hub 服务地址。

$ cat /usr/lib/systemd/system/docker.service
...
[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/docker
# 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 \
          --host=fd:// \
          --exec-opt native.cgroupdriver=systemd \
          --insecure-registry register-mirror-ip:port \
          $OPTIONS
ExecReload=/bin/kill -s HUP $MAINPID
...

3、重启docker服务

$ systemctl restart docker

buildx 构建镜像

在使用docker buildx拉取http镜像时,除了需要配置docker,buildx的配置也需要修改。
1、增加或修改配置文件buildkitd.toml,添加如下内容:

...
[registry."register-mirror-ip:port"]
  http = true
...

buildkitd详细配置文件可参考 buildkitd

2、在创建buildx的节点时,使用--config参数指定配置文件:

$ docker buildx create --use --name name --driver-opt image=moby/buildkit:buildx-stable-1 --config ./buildkitd.toml

podman 拉取镜像

1、修改container配置文件/etc/containers/registries.conf,将要访问的服务设置为insecure状态:

[[registry]]
  prefix = ""
  location = "register-mirror-ip:port"
  insecure = true
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值