标签:apach -- image 没有 env 命令 软件 sde cmd
DockeFile使用来构建docker镜像文件!命令参数脚本
构建步骤
查看官方是怎么做
很多官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像
DockerFile基础知识
#
比哦啊哈斯注释Dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件
DockerFile:构建文件,定义了一切的步骤,元代码
DockerImages:通过DockerFile构建生成的镜像最终发布和运行的产品
Docker容器:容器就是镜像运行起来提供服务的
Docker Hub 中99%镜像都是从这个基础镜像过来的 FROM scratch, 然后配置需要的软件和配置来进行的构建
创建一个自己的Centos
编写DockerFile文件
通过 docker build 构建镜像
命令格式:docker build -f dockerfile文件 -t 目标镜像名:版本号 .
可以发现增加的VIM,net-tools都可以使用
还可以通过docker history 镜像id
查看镜像是怎么生成的
CMD 和 ENTRYPOINT 的区别
测试CMD
# 编写 dockerfile 文件
FROM centos
CMD ["ls", "-a"]
# 构建镜像
sudo docker build -f dockerfile-cmd-test -t mycentos:0.2 .
# run运行,发现 ls -a生效了,但是只有最后一个CMD生效
sudo docker run mycentos:0.2
测试 ENTRYPOINT
# 编写 dockerfile 文件
FROM centos
ENTRYPOINT ["ls", "-a"]
# 构建镜像
sudo docker build -f dockerfile-cmd-test -t mycentos:0.2 .
# run运行,发现 ls -a生效了,但是只有最后一个CMD生效
sudo docker run mycentos:0.2
# 区别,我们追加的命令,直接添加到ENTRYPOINT命令后面
ubuntu@VM-0-13-ubuntu:/home/dockerfile$ sudo docker run mycentos:0.3 -l
total 56
drwxr-xr-x 1 root root 4096 Jan 9 07:22 .
drwxr-xr-x 1 root root 4096 Jan 9 07:22 ..
-rwxr-xr-x 1 root root 0 Jan 9 07:22 .dockerenv
lrwxrwxrwx 1 root root 7 Nov 3 15:22 bin -> usr/bin
drwxr-xr-x 5 root root 340 Jan 9 07:22 dev
drwxr-xr-x 1 root root 4096 Jan 9 07:22 etc
drwxr-xr-x 2 root root 4096 Nov 3 15:22 home
lrwxrwxrwx 1 root root 7 Nov 3 15:22 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Nov 3 15:22 lib64 -> usr/lib64
drwx------ 2 root root 4096 Dec 4 17:37 lost+found
drwxr-xr-x 2 root root 4096 Nov 3 15:22 media
drwxr-xr-x 2 root root 4096 Nov 3 15:22 mnt
drwxr-xr-x 2 root root 4096 Nov 3 15:22 opt
dr-xr-xr-x 113 root root 0 Jan 9 07:22 proc
dr-xr-x--- 2 root root 4096 Dec 4 17:37 root
drwxr-xr-x 11 root root 4096 Dec 4 17:37 run
lrwxrwxrwx 1 root root 8 Nov 3 15:22 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Nov 3 15:22 srv
dr-xr-xr-x 13 root root 0 Jan 8 12:29 sys
drwxrwxrwt 7 root root 4096 Dec 4 17:37 tmp
drwxr-xr-x 12 root root 4096 Dec 4 17:37 usr
drwxr-xr-x 20 root root 4096 Dec 4 17:37 var
准备镜像文件Tomcat压缩包,jdk的压缩包
编写dockerfile文件,官方命名Dockerfile
, build
命令会自动寻找Dockerfile文件,就不需要-f指定了
FROM centos
MAINTAINER lxl<3419066024@qq.com>
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u162-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.41.tar.gz /usr/local
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_162
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.41
ENV CATALINA_BASH $CATALINA_HOME
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.41/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.41/bin/logs/catatlina.out
sudo docker build -t diytomcat .
docker run -d -p 3344:8080 --name lxltomcat -v /home/ubuntu/tomcat/test:/usr/local/apache-tomcat-9.0.41/webapps/test -v /home/ubuntu/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.41/logs diytomcat
在本地的挂载目录上可以上传自己的文件
DockerHub
发布到阿里云
标签:apach -- image 没有 env 命令 软件 sde cmd
原文地址:https://www.cnblogs.com/lxlhelloworld/p/14286490.html