docker的基本使用方式就是先用基础image和你的app代码,使用Dockerfile构建镜像,然后运行,于是你的app就跑起来了。所以手写Dockerfile,构建自己的docker镜像,才能深入理解docker。
构建docker镜像一般都是从最基础的镜像开始,比如os,下面从ubuntu18.04的镜像构造jdk镜像。
FROM ubuntu:18.04 MAINTAINER liyong RUN mkdir -p /usr/local/java
# 压缩包,会自动解压 ADD jdk-8u60-linux-x64.tar.gz /usr/local/java
# 解压后的目录 ENV JAVA_HOME /usr/local/java/jdk1.8.0_60 ENV PATH $PATH:$JAVA_HOME/bin
这样我们就构建了jdk的镜像,运行镜像,就可以在里面执行java程序了,是不是感觉很神奇。
FROM yongli/jdk:8 RUN mkdir -p /usr/local/tomcat-8
# 文件是解压后的包,注意原目录名是被丢弃的 ADD tomcat-8 /usr/local/tomcat-8 ENV CATALINA_HOME /usr/local/tomcat-8 # 在运行时 EXPOSE 8080 # 这些文件要具有可执行权限 CMD ["/usr/local/tomcat-8/bin/catalina.sh","run"]
运行正tomcat的容器,这个expose的端口,在运行容器时需要有映射关系
进入容器:
1. $ sudo docker ps 2. $ sudo docker exec -it 775c7c9ee1e1 /bin/bash
docker run命令的详细解释:
参考博文:从零开始构建docker镜像