DockerFile案例
#dockerfile 范例编写
#1、基础镜像
FROM centos
# 2、维护者信息
MAINTAINER docker_user docker_user@email.com
#3、镜像操作指令
RUN groupadd admin && useradd admin -g admin
RUN mkdir /usr/java
RUN mkdir /home/admin/app
COPY jdk-8u191-linux-x64.tar.gz /usr/java
COPY demo-0.0.1-SNAPSHOT.jar /home/admin/app
RUN tar xzf /usr/java/jdk-8u191-linux-x64.tar.gz -C /usr/java && rm -rf usr/java/jdk-8u191-linux-x64.tar.gz
#设置环境变量
ENV JAVA_HOME /usr/java/jdk1.8.0_191
ENV PATH $PATH:$JAVA_HOME/bin
RUN source /etc/profile
# 设置对外端口为 7010
EXPOSE 7010
#执行 java -jar 命令 (CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行)
CMD java -jar /home/admin/app/demo-0.0.1-SNAPSHOT.jar
以上为DockerFile正文,DockerFile编写完成后,需要使用Docker命令打成镜像文件。
* 构建docker镜像
docker build -t hellworld .
此命令最后有一个点,表示使用当前上下文的dockerfile文件 -t:给镜像取名为helloworld
* 启动docker镜像
docker run -d -p 7010:7010 --name dockertest helloworld
-d 后台运行
-p 7010:7010 端口映射,注意小写p (前一个7010是对外浏览器上访问的端口,后一个7010是容器内工程本身的端口,两者不一样)
--name dockertest 给容器取名为 dockertest (取名参数前面是两短横线)
hellworld 引用镜像名称
* 进入docker镜像
docker exec -it hellworld bash
以命令行进入docker容器,hellworld为容器名称
* docker镜像打包
docker save -o helloworld.tar.gz helloworld
save命令保存一个或多个镜像到tar归档文件,helloworld.tar.gz打包后的名称, helloworld为引用镜像
更多原创文章请查看地址 https://www.mxblog.com.cn 更多资源获取查看 天天精品
更多免费互联网架构书籍、大厂技术分享书籍、每年Java经典面试宝典可查看免费docker电子书下载