windows版 docker desktop学习笔记——6. Dockerfile编写

一.Dockerfile常用命令解析

学习Dockerfile可以打开在docker hub打开镜像查看原始镜像的Dockerfile编写

例如:

注意事项:1.Dockerfile的文件名必须是Dockerfile

2.所有的命令都用大写

3.所有的命令都要跟参数

命令 用途 示例 FROM FROM centos RUN 容器构建时需要运行的命令: 支持两种格式 shell: yum isntall -y vim exec: ["可执行文件",“参数”] RUN yum isntall -y vim EXPOSE 对外暴露端口 EXPOSE 80 WORKDIR 容器创建后,终端默认登录进来的工作目录 WORKDIR /home/admin USER 指定该镜像以什么用户去执行 默认为root USER admin ENV 运行时环境变量 ENV JAVA_HOME /usr/local/java/jdk1.8.0_333 VOLUME 配置容器数据卷挂载 VOLUME /tmp ADD 将宿主机目录下的文件拷贝进镜像并且会自动处理URL和解压tar包 ,等于copy+解压 ADD spring-boot-v1_5_19.jar spring-boot-v1_5_19_docker.jar COPY 将源文件从宿主机拷贝到容器内 COPY spring-boot-v1_5_19.jar spring-boot-v1_5_19_docker.jar CMD: 在执行docker run时候执行,可以有多个cmd指令但是只有最后一个生效, docker run的参数会覆盖 cmd的参数,一般可变参数用cmd 支持两种格式 shell: yum isntall -y vim exec: ["可执行文件",“参数”] CMD /bin/bash; CMD echo "success-----------------ok" ENTRYPOINT 也是用来指定容器启动时要执行的命令,类似cmd 但是不会被 run 后的参数命令覆盖,固定参数一般用ENTRY_POINT, 当CMD和ENTRYPOINT联用时,cmd多用于给ENTRYPOINT传参 ENTRYPOINT ["java","-jar","/spring-boot-v1_5_19_docker.jar"]

二、docker 打包微服务示例:

1.编写DockerfIle 文件 ,注意文件编码

2.运行Dockerfile

docker build -t mydockerjavaweb:v0.1 . 这个红点别丢

运行完成后使用docker images查看镜像

三、docker网络

1.查看网络列表 docker network ls

2.查看某个网络的配置docker network inspect host

四种常见网络说明

经验分享 程序员 微信小程序 职场和发展