
Dockerfile 配置
Dockerfifile其实就是我们用来构建Docker镜像的源码,当然这不是所谓的编程源码,而是一些命令的组
合,只要理解它的逻辑和语法格式,就可以编写Dockerfifile了。
简单点说,Dockerfifile的作用:它可以让用户个性化定制Docker镜像。因为工作环境中的需求各式各
样,网络上的镜像很难满足实际的需求。
常见命令:
镜像构建示意图:
可以看到,新镜像是从基础镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一
层
RUN、CMD、ENTRYPOINT的区别?
RUN:用于指定 docker build 过程中要运行的命令,即是创建 Docker 镜像(image)的步骤
CMD:设置容器的启动命令, Dockerfifile 中只能有一条 CMD 命令,如果写了多条则最后一条生效,
CMD不支持接收docker run的参数。
ENTRYPOINT:入口程序是容器启动时执行的程序, docker run 中最后的命令将作为参数传递给入口
程序 ,ENTRYPOINY类似于 CMD 指令,但可以接收docker run的参数 。
使用Dockerfifile制作服务镜像:
我们利用Dockerfifile制作一个Eureka注册中心的镜像
1)上传服务jar包到linux
2)编写Dockerfile
cd /root
chmod dockerDemo
cd dockerDemo
touch Dockerfile
vim Dockerfile
# 内容如下
FROM openjdk:8-jdk-alpine
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
EXPOSE 10086
ENV TZ=Asia/Shanghai
RUN apk add --no-cache tzdata
ENTRYPOINT ["java","-jar","/app.jar"]
3)构建镜像
# docker build --build-arg JAR_FILE=JAR包名.jar -t 镜像名:版本 .
# 例如:
docker build --build-arg JAR_FILE=NetWorkDDNS-1.0.0.jar -t ddns:v1 .
4)查看镜像是否创建成功
docker images
5)创建容器
#前台运行
docker run -i --network=yyy --name=ddns -p 10086:10086 ddns:v1
# 后台运行
docker run -d --network=yyy --name=ddns -p 10086:10086 ddns:v1
6)访问容器
http://192.168.66.101:10086
7)推送hub
打标签
docker tag ddns:v4 www.itzaj.com:338/yyy/ddns:v4
报错解决
unauthorized: unauthorized to access repository: yyy/ddns, action: push: unauthorized to access repository: yyy/ddns, action: push
docker login www.itzaj.com:338
输入你的 用户名和密码 admin 用户是不行的 添加一个新用户
创建一个项目叫 yyy 并添加用户到这个项目
推送
docker push www.itzaj.com:338/yyy/ddns:v4
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员HoneyZ
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果