docker创建本地仓库

1. 下载仓库镜像 ( 从中央仓库拉取最新的 registry 仓库)

docker pull registry

docker pull registry

2. 创建仓库文件夹 ( 存储本地镜像)

mkdir -pv /opt/docker/registry

mkdir -pv /opt/docker/registry

3.启动镜像

docker run -d -p 5000:5000 -v /opt/docker/registry:/var/lib/registry --restart=always --name registry registry

docker run -d -p 5000:5000 -v /opt/docker/registry:/var/lib/registry --restart=always --name registry registry

4.从公有仓库拉取一个镜像下来,然后push到私有仓库中进行测试,当前用nginx镜像做测试

docker pull nginx docker images

docker pull nginx

docker images

5.给docker注册https协议,支持https访问

如果daemon文件不存在,vim会自己创建一个,代码如下

{ "live-restore": true,

"registry-mirrors": ["https://***.mirror.aliyuncs.com"],

"insecure-registries" : ["192.168.6.123:5000"],

}

注:

insecure-registries----->开放注册https协议(字面意思为不安全的仓库,通过添加这个参数对非https仓库进行授信,可以设置多个insecure-registries地址,以数组形式书写,地址不能添加协议头(http))

registry-mirrors----->仓库源

live-restore ----->当docker daemon停止时, 会关闭运行中的容器。

从 docker engine 1.12 开始, 你可以调整daemon参数,使daemon服务不可用的时候,容器依旧保持运行状态。

如果daemon文件不存在,vim会自己创建一个,代码如下

{

  "live-restore": true,

  "registry-mirrors": ["https://***.mirror.aliyuncs.com"],

  "insecure-registries" : ["192.168.6.123:5000"],

}

注:

  insecure-registries----->开放注册https协议(字面意思为不安全的仓库,通过添加这个参数对非https仓库进行授信,可以设置多个insecure-registries地址,以数组形式书写,地址不能添加协议头(http))

  registry-mirrors----->仓库源

       live-restore    ----->当docker daemon停止时, 会关闭运行中的容器。 从 docker engine 1.12 开始, 你可以调整daemon参数,使daemon服务不可用的时候,容器依旧保持运行状态。

6.新建一个tag,把nginx名称变成域名或者IP/镜像名称

docker tag [镜像id] 192.168.6.123:5000/nginx

docker tag [镜像id] 192.168.6.123:5000/nginx

7. 推送到本地仓库

docker push 192.168.6.123:5000/nginx

docker push 192.168.6.123:5000/nginx

8.删除刚刚打的tag镜像和开头从公共库拉取的 nginx镜像,拉取自己本地仓库的镜像

docker rmi 192.168.6.123:5000/nginx docker rmi nginx

docker rmi 192.168.6.123:5000/nginx

docker rmi nginx

9.拉取本地镜像

10.在其他机器同样配置下daemon文件

{ "live-restore": true, "insecure-registries":["192.168.6.123:5000"] }

{

    "live-restore": true,

    "insecure-registries":["192.168.6.123:5000"]

}

这样其他机器就能拉仓库机器的镜像了

################本地仓库ssl加密################

1.制作ssl证书

cd /etc/pki/tls/certs openssl genrsa -des3 -out server.key 2048 #生成私钥(回车输入一个密码 2次输入密码一致即可)

cd /etc/pki/tls/certs

openssl genrsa -des3 -out server.key 2048   #生成私钥(回车输入一个密码 2次输入密码一致即可)

openssl req -new -key server.key -out server.csr #创建证书请求

openssl req -new -key server.key -out server.csr  #创建证书请求

cp server.key server.key.org #备份私钥

cp server.key server.key.org  #备份私钥

2.从生成server.key中清除刚才输入的密码保护

openssl rsa -in server.key -out server.key #密码为上一步输入的密码

openssl rsa -in server.key -out server.key    #密码为上一步输入的密码

3.签名

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

5.拷贝证书

cp -a /etc/pki/tls/certs/server* /etc/docker/certs.d/[没有这个目录可自行创建]

cp -a /etc/pki/tls/certs/server* /etc/docker/certs.d/[没有这个目录可自行创建]

6.到此仓库的秘钥生成完成,可以测试启动

docker run -d -p 5000:5000 --restart=always --name registry \ -v /var/lib/registry:/var/lib/registry \ -v /etc/docker/certs.d:/certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/server.key \ registry

docker run -d -p 5000:5000 --restart=always --name registry \

-v /var/lib/registry:/var/lib/registry \

-v /etc/docker/certs.d:/certs \

-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \

-e REGISTRY_HTTP_TLS_KEY=/certs/server.key \

registry

7.查看启动后的容器

docker ps

docker ps

8.设置docker login登录的用户名密码

1.安装加密工具

yum -y install httpd-tools

yum -y install httpd-tools

2.设置登录用户名和密码

htpasswd -Bc /etc/docker/.htpasswd admin

htpasswd -Bc /etc/docker/.htpasswd admin

3.启动容器

docker run -d -p 5000:5000 --restart=always --name registry \ -v /var/lib/registry:/var/lib/registry \ -v /etc/docker/certs.d:/certs \ -v /etc/docker:/auth \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/server.key \ -e REGISTRY_AUTH=htpasswd \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/.htpasswd \ -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \ registry

docker run -d -p 5000:5000 --restart=always --name registry \

-v /var/lib/registry:/var/lib/registry \

-v /etc/docker/certs.d:/certs \

-v /etc/docker:/auth \

-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \

-e REGISTRY_HTTP_TLS_KEY=/certs/server.key \

-e REGISTRY_AUTH=htpasswd \

-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/.htpasswd \

-e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \

registry

4.登录本地仓库

docker login www.shooter.com:5000

docker login www.shooter.com:5000

Docker搭建本地仓库_wskfly的博客-CSDN博客_docker 本地仓库

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建本地Docker镜像仓库,可以将镜像保存在本地,方便快速地共享和部署。以下是创建Docker本地镜像仓库的步骤: 1. 安装Docker 如果您还没有安装Docker,请先安装Docker。请按照以下步骤进行操作: - 在Linux上安装Docker:https://docs.docker.com/engine/install/ - 在Windows上安装Docker:https://docs.docker.com/docker-for-windows/install/ - 在Mac上安装Docker:https://docs.docker.com/docker-for-mac/install/ 2. 配置Docker镜像仓库 创建一个目录作为Docker镜像仓库的存储路径,例如:/opt/docker-registry。在该目录下创建一个名为config.yml的文件,用于配置Docker镜像仓库的认证和访问控制。 ``` version: 0.1 log: level: debug formatter: text storage: filesystem: rootdirectory: /var/lib/docker-registry auth: htpasswd: realm: basic-realm path: /opt/docker-registry/auth/htpasswd ``` 在以上配置中,我们使用htpasswd进行认证。我们需要创建一个htpasswd文件,用于存储用户名和密码。可以使用以下命令创建一个htpasswd文件: ``` mkdir /opt/docker-registry/auth htpasswd -bBc /opt/docker-registry/auth/htpasswd myuser mypassword ``` 这将创建一个包含用户名和密码的htpasswd文件。 3. 运行Docker镜像仓库 使用以下命令启动Docker镜像仓库: ``` docker run -d -p 5000:5000 --restart=always --name registry \ -v /opt/docker-registry:/var/lib/docker-registry \ -v /opt/docker-registry/config.yml:/etc/docker/registry/config.yml \ registry:2 ``` 这将在后台运行Docker镜像仓库,并将其暴露在5000端口上。 4. 测试Docker镜像仓库 现在我们可以测试Docker镜像仓库是否正常工作。使用以下命令从默认的Docker Hub拉取一个镜像,并将其推送到本地的Docker镜像仓库中: ``` docker pull alpine docker tag alpine localhost:5000/alpine docker push localhost:5000/alpine ``` 这将从Docker Hub拉取alpine镜像,并将其标记为localhost:5000/alpine。然后,它将推送该镜像到本地的Docker镜像仓库中。 5. 使用Docker镜像仓库 现在我们可以使用本地的Docker镜像仓库来拉取和推送镜像。使用以下命令从本地的Docker镜像仓库中拉取alpine镜像: ``` docker pull localhost:5000/alpine ``` 这将从本地的Docker镜像仓库中拉取alpine镜像。 我们还可以将其他镜像推送到本地的Docker镜像仓库中,并使用它们来部署应用程序。 以上就是创建Docker本地镜像仓库的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值