为了账号安全,请及时绑定邮箱和手机立即绑定

Docker创建私有仓库

标签:
Docker
  • 1. 安装运行Docker-Registry

docker run -d \ 
# 指定端口映射管理
-p 5000:5000 -v \ 
# 指定本地目录/root/lib/docker/registry/ 挂载到容器
/root/lib/docker/registry/:/var/lib/registry \
#指定镜像名称
registry

# 查看运行状态
[root@node1 registry]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAME
Sa1092621c937        registry            "/entrypoint.sh /etc…"   10 seconds ago      Up 8 seconds        0.0.0.0:5000->5000/tcp   compassionate_stonebraker

#查看创建的私有仓库中存在的镜像
curl 0.0.0.0:5000/v2/_catalog
{"repositories":[]} # 当前没有任何镜像
  • 2. 上传镜像到私有仓库

# 创建一个镜像
# 新建目录 
mkdir study-springboot-docker
touch Dockerfile
vi Dockerfile

FROM openjdk:8u181
VOLUME /tmp
ADD study-docker-0.0.1.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
# study-docker-0.0.1.jar 是一个基于Springboot的一个hello world程序

# 构建镜像
docker build -t springboot-docker .

# 查看构建好的镜像
[root@localhost springboot]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
springboot-docker           latest              cab36712a915        19 minutes ago      640MB

# 标记镜像
docker tag springboot-docker 192.168.31.138:5000/springboot-docker:latest
# 当前机器ip为192.168.31.138
# 上传镜像到私有仓库
docker push 192.168.31.138:5000/springboot-docker:latest
Error response from daemon: Get https://192.168.31.138:5000/v2/: dial tcp 192.168.31.138:5000: connect: no route to host

报错:

Error response from daemon: Get https://192.168.31.138:5000/v2/: dial tcp 192.168.31.138:5000: connect: no route to host

Docker 默认不允许非  HTTPS  方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制。

Ubuntu 14.04, Debian 7 Wheezy

DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registries=192.168.31.138:5000"

Ubuntu 16.04+, Debian 8+, centos 7


对于使用  systemd  的系统,请在  /etc/docker/daemon.json  中写入如下内容(如果文件不存

在请新建该文件)

{
    "registry-mirror": [
        "https://registry.docker-cn.com"
        ],
        "insecure-registries": [
            "192.168.31.138:5000"
        ]
}
# 重启docker
systemctl restart docker
# 再次push
docker push 192.168.31.138:5000/springboot-docker:latest

#查看创建的私有仓库中的镜像
curl 0.0.0.0:5000/v2/_catalog
{"repositories":[springboot-docker]} # springboot-docker镜像已经成功上传
  • 3. 拉取镜像

新开虚拟机,当前虚拟机ip为:192.168.31.137 与上面机器同属一个网段

[root@node1 docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
# 当前机器没有任何镜像
# 尝试拉去192.168.31.138私有仓库中的镜像springboot-docker
[root@node1 docker]# docker pull 192.168.31.138:5000/springboot-docker:latest
Error response from daemon: Get https://192.168.31.138:5000/v2/: dial tcp 192.168.31.138:5000: connect: no route to host
# 按照上述同样的方式进行处理
# 再次拉取
docker pull 192.168.31.138:5000/springboot-docker:latest
latest: Pulling from springboot-docker
55cbf04beb70: Pull complete 
1607093a898c: Pull complete 
9a8ea045c926: Pull complete 
d4eee24d4dac: Pull complete 
c58988e753d7: Pull complete 
794a04897db9: Pull complete 
70fcfa476f73: Pull complete 
806029475e0c: Pull complete 
67959b355155: Pull complete 
64aa22c5f389: Pull complete 
Digest: sha256:cedb5b62aff153b923594071205e63a565bb6d0d2de3ef2bb27bfa7e94e4d6ae
Status: Downloaded newer image for 192.168.31.138:5000/springboot-docker:latest

查看镜像

docker images
REPOSITORY                              TAG                 IMAGE ID            CREATED                  SIZE
192.168.31.138:5000/springboot-docker   latest              cab36712a915        Less than a second ago   640MB

测试运行容器

docker run -d -p 80:8080 192.168.31.138:5000/springboot-docker
# 访问测试
curl 127.0.0.1
hello spring boot docker!


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
8549
获赞与收藏
6550

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消