一.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
四种常见网络说明