Docker复习06——Dockerfile+Docker微服务实战

Dockerfile

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。

构建三步骤

  • 编写Dockerfile文件

  • docker build命令构建镜像

  • docker run 依镜像运行容器实例

构建过程

在这里插入图片描述

在这里插入图片描述

Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维

保留字简介

FROM

  • 当前镜像是基于哪个镜像,第一条必须是from

MAINTAINER

  • 谁做的

RUN

  • 在docker build时运行
  • RUN yum -y install vim

EXPOSE

  • 当前容器对外暴露的端口

WORKDIR

  • 指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
  • ubuntu登入进去 pwd 是 /
  • tomcat登入进去 pwd 是 /usr/local/tomcat

USER

  • 指定该镜像以什么样的用户去执行,如果都不指定,默认是root

ENV

  • 设置环境变量
  • 一般和WORKDIR 用 前面ENV定义 后面WORKDIR 取值

ADD

  • 将宿主机目录下的文件拷贝进镜像且会自动处理uRL和解压tar压缩包
  • COPY+解压

COPY

  • 类似ADD 拷贝文件和目录到镜像中

VOLUME

  • 容器卷

CMD

  • 启动后要干的事情 docker run 执行

  • CMD会被docker run 命令覆盖 只有最后一个命令生效

  • 在这里插入图片描述

  • 加了 /bin/bash 后 不能直接访问8080端口,原因是把之前的覆盖了

ENTRYPOINT

  • 在这里插入图片描述

案例

centos

docker run -it centos镜像id /bin/bash  # 没有vim ifconfig jdk环境

#要求centos具备vim+ifconfig+jdk8
jdk8.tar.gz
https://mirrors.yangxingzhen.com/jdk/

编写Dockerfile

mkdir myfile
ll
# 有jdk.tar.gz包

vim Dockerfile
FROM centos
MAINTAINER zzyy<zzyybs@126.com>
 
ENV MYPATH /usr/local
WORKDIR $MYPATH
 
#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
#安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
 
EXPOSE 80
 
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash

构建

docker build -t centosjava8:1.5 .
#注意 有个点
docker images #查看 发现有这个centosjava8:1.5  镜像了
docker run -it 镜像id /bin/bash
pwd 
/usr/local
vim 可以用
ifconfig 可以用
java -version  可以

虚悬镜像

仓库名 和 标签名都是 的镜像

mkdir /test
cd test
vim Dockerfile

FROM ubuntu
CMD echo 'action is success'

docker build .

docker images # 发现有 仓库名和标签名都是 <none>的镜像  没啥用 一定要删除

docker images ls -f dangling=true #查看虚悬镜像
docker image prune #删除虚悬镜像

Docker微服务实战

第一步 springboot项目打包 上传

端口号6001

mkdir mydocker  
cd mydocker # 上传到这里
vim Dockerfile  # 编写
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER zzyy
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为zzyy_docker.jar
ADD docker_boot-0.0.1-SNAPSHOT.jar zzyy_docker.jar
# 运行jar包
RUN bash -c 'touch /zzyy_docker.jar'
ENTRYPOINT ["java","-jar","/zzyy_docker.jar"]
#暴露6001端口作为微服务
EXPOSE 6001  
#构建
docker build -t zzyy_docker:1.6 .
docker images

# 运行容器
docker run -d -p 6001:6001 镜像id

# 访问测试
ip:6001

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值