Docker Hub是Docker官方维护的Docker Registry,有很多优秀镜像,此外,还提供认证、工作组结构、工作流工具、构建触发器等工具来简化工作。
可使用docker search搜索存放在Docker Hub中的镜像。
也可使用docker login命令登录Docker Hub。输入该命令并按照提示输入账号和密码,即可完成登录。
Docker Hub的使用非常简单,只需注册一个Docker Hub账号,就可正常使用了。
网站地址:https://hub.docker.com
单机Docker Hub主页上的Create Repository按钮,按照提示填入信息即可创建一个仓库。
如何将构建的镜像推送的Docker Hub呢?使用以下命令即可,例如:
docker push discovery-eureka:0.0.1
经过一段时间的等待,就可推送成功。
相比Docker Hub,私有仓库有以下优势:
Docker Registry2.0的搭建,只需执行以下命令即可新建并启动一个Docker Registry2.0.
docker run -d -p 5000:5000 -restart=always --name registry2 registry:2
只需指定私有仓库的地址,即可将镜像推送到私有仓库。
docker push localhost:5000/itmuch/discovery-eureka:0.0.1
执行此命令,发现没成功,且提示以下内容:
The push refers to a repository [docker push localhost:5000/itmuch/discovery-eureka:0.0.1]
An image does not exist locally with the tag : localhost:5000/itmuch/discovery-eureka
Docker Hub是默认的Docker Registry,所以/itmuch/discovery-eureka:0.0.1相当于docker.io/itmuch/discovery-eureka:0.0.1。因此,要想将镜像推到到私有仓库,需要修改镜像标签,
docker tag itmuch/discovery-eureka:0.0.1 localhost:5000/itmuch/discovery-eureka:0.0.1
修改镜像标签后,在执行以下命令,即可将镜像推送到私有仓库。
docker push localhost:5000/itmuch/discovery-eureka:0.0.1
以discovery-eureka为例。
首先,在pom.xml中添加Maven的Docker插件。
com.spotify
docker-maven-plugin
0.4.13
itmuch/discovery-eureka:0.0.1
java
["java", "-jar", "${project.build.finalName}.jar"]
/
${project.build.directory}
${project.build.finalName}.jar
配置说明:
2:执行以下命令,构建Docker镜像
mvn clean package docker:build
3:执行docker images ,即可查看刚刚构建的镜像。
4:启动镜像:
docker run -d -p 8761:8761 itmuch/discovery-eureka0.0.1
5:访问测试。
1:首先在/discovery-eureka/src/main/docker目录下,新建一个Dockerfile文件,例如:
FROM java:8
VOLUME /tmp
ADD discovery-eureka0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 9000
ENTRYPOINT ["java","Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2:修改pom.xml
com.spotify
docker-maven-plugin
0.4.13
itmuch/discovery-eureka0.0.2
${project.basedir}/src/main/docker
/
${project.build.directory}
${project.build.finalName}.jar
可以看到,不再指定baseImage和entrypoint,而是使用dockerDirectory指定Dockerfile所在的路径。