上一篇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<1114592799@qq.com> |
| 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<1114592799@qq.com> ##挂载 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
四种常见网络说明



