Dockerfile常用命令
命令 作用
FROM image_name:tag 定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name 声明镜像的创建者
ENV key value 设置环境变量 (可以写多条),可以在创建容器的时候传递参数给容器
RUN command 是Dockerfile的核心部分,执行系统指令(可以写多条)
ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file 和ADD相似,但是如果有压缩文件并不能解压
WORKDIR path_dir 设置工作目录
CMD 指定容器启动时运行的命令
一、Dockerfile搭建jdk环境
第一步:在宿主机创建jdk存储目录
mkdir /usr/local/dockerjdk
第二步:下载jdk-8u131-linux-x64.tar.gz并上传到服务器(宿主机)中的/usr/local/dockerjdk目录
第三步:在/usr/local/dockerjdk目录下创建文件Dockerfile
#设置基础镜像名称
FROM centos:7
#设置镜像作者
MAINTAINER ujiuye
#设置工作目录
WORKDIR /usr
#在镜像创建目录
RUN mkdir /usr/local/java
#复制宿主机jdk安装包到镜像(自动解压)
ADD jdk-8u131-linux-x64.tar.gz /usr/local/java/
#设置环境变量JAVA_HOME
ENV JAVA_HOME /usr/local/java/jdk1.8.0_131
#设置环境变量 CLASSPATH
ENV CLASSPATH $JAVA_HOME/lib
#设置环境变量 PATH
ENV PATH $JAVA_HOME/bin:$PATH
第四步:执行命令构建镜像
docker build -t='jdk1.88' .
第五步:查看镜像是否建立完成
docker run -di --name=java1 jdk1.88
docker exec -it java1 /bin/bash
java -version
二、Dockerfile搭建tomcat环境镜像
第一步:在宿主机创建tomcat存储目录
mkdir /usr/local/dockertomcat
第二步:上传安装包到服务器
下载jdk-8u131-linux-x64.tar.gz、apache-tomcat-8.5.15.tar.gz并上传到服务器(宿主机)中的/usr/local/dockertomcat目录
第三步:在/usr/local/dockertomcat目录下创建文件Dockerfile
vi dockerfile
#设置基础镜像名称
FROM centos:7
#设置镜像作者
MAINTAINER ujiuye
#设置工作目录
WORKDIR /usr
#在镜像创建目录
RUN mkdir /usr/local/app
#复制宿主机jdk安装包到镜像(自动解压)
ADD jdk-8u131-linux-x64.tar.gz /usr/local/app/
ADD apache-tomcat-8.5.15.tar.gz /usr/local/app/
#设置环境变量JAVA_HOME
ENV JAVA_HOME /usr/local/app/jdk1.8.0_131
ENV CATALINA_HOME /usr/local/app/apache-tomcat-8.5.15
#设置环境变量 CLASSPATH
ENV CLASSPATH $JAVA_HOME/lib
#设置环境变量 PATH
ENV PATH $JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH
#暴露8080端口
EXPOSE 8080
#容器启动时运行tomcat
CMD ["/usr/local/app/apache-tomcat-8.5.15/bin/catalina.sh","run"]
第四步:执行命令构建镜像
docker build -t='tomcat8.5:10' .
注意后边的空格和点(.表示当前目录),不要省略
创建tomcat容器
docker run -di --name=tomcat999 -p 9999:8080 tomcat8.5:10
查看容器
docker pa
访问tomcat地址:
http://192.168.1.31:9999/
三、Dockerfile 创建微服务java镜像
第一步、编译工程EurekaServer01执行构建指令
注意:EurekaServer01服务器单独部署,暂不使用集群,需要修改属性配置文件
#服务器端口号
server:
port: 10087
#应用名称
spring:
application:
name: EurekaServer01
#是否将自己注册到Eureka服务中,本身就是所有无需注册
eureka:
client:
register-with-eureka: false
#是否从Eureka中获取注册信息
fetch-registry: false
#EurekaServer注册中心地址
service-url:
defaultZone: http://localhost:${server.port}/eureka
注意:pom.xml一定要增加springboot 的maven编译插件,要不然打包不能使用
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
第二步:在宿主机创建jar存储目录
mkdir /usr/local/dockerspringboot
上传编译构建好的jar包EurekaServer02-1.0.jar到该目录
第三步:在/usr/local/dockerspringboot目录下创建文件Dockerfile
vi dockerfile
FROM java:8
ADD EurekaServer02-1.0.jar /app.jar
EXPOSE 10087
CMD ["java","-jar","/app.jar"]
第四步:执行命令构建镜像
docker build -t='eurekaserver:0.0.1' .
注意后边的空格和点(.表示当前目录),不要省略
第五步:查看镜像是否建立完成
docker images
第六步:使用镜像创建运行容器
docker run -di --name=eureka1 -p 10087:10087 eurekaserver:0.0.1
**第七步:访问测试 **
http://192.168.1.31:10087/