1. 安装运行Docker-Registrydocker 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 WheezyDOCKER_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!