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

上一篇windows版 docker desktop学习笔记——5. 搭建elasticsearch+kibana,以及轻量级管理工具portainer

一.Dockerfile常用命令解析

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

例如:tomcat/Dockerfile at f13f02d78e7ff7bb03cf390513045f03dbca0e7c · docker-library/tomcat · GitHub

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

                  2.所有的命令都用大写

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

命令 用途 示例

FROM

来源于哪个基础镜像哪个tag

FROM centos

MAINTAINER

作者信息

lengedyun<[email protected]>

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 文件 ,注意文件编码

##打包微服务
FROM java:8

MAINTAINER lengedyun<[email protected]>

##挂载 VOLUME 将主机的当前目录临时链接骚容器的tmp目录
VOLUME /tmp
##
ADD spring-boot-v1_5_19.jar spring-boot-v1_5_19_docker.jar
##运行jar包
RUN bash -c 'touch /spring-boot-v1_5_19_docker.jar'
ENTRYPOINT ["java","-jar","/spring-boot-v1_5_19_docker.jar"]
EXPOSE 8090
CMD echo "success-----------------ok"

2.运行Dockerfile

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

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

三、docker网络

1.查看网络列表 docker network ls

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

四种常见网络说明

windows版 docker desktop学习笔记——6. Dockerfile编写_第1张图片

你可能感兴趣的:(docker学习,docker,Dockerfile,Docker网络)