DockerFile
------------恢复内容开始------------
DockerFile
1.编写一个dockerfile文件
2.docker build构建成一个镜像
3.docker run 运行镜像
4.docker push 发布镜像(DockerHub、阿里云镜像仓库)
很多官方镜像都是基础包,很多功能都没有,通常会自己构建。
DockerFile构建过程
基础知识:
1.每个关键字都是大写
2.执行是从上到下
3.#表示注释
4.每一个指令都会创建提交一个新的镜像层,并提交
FROM ##基础镜像
MAINTAINER ##镜像是谁写的 姓名+邮箱
RUN ##镜像构建的时候需要运行命令
ADD ##添加内容
WORKDIR ##镜像的工作目录
VOLUME ##挂载的目录
EXPOSE ##暴露端口配置
CMD ##指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT ##指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD ##当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令。触发指令
COPY ##类似ADD,将我们的文件拷贝到镜像中
ENV ##构建的时候设置环境变量
实战
从网上直接拉取centos的镜像,发现有些命令使用不了,例如 pwd,vim,ifconfig
我们直接自己定做centos镜像可以使用这些命令。
1.编写dockerfile
FROM centos
MAINTAINER cui<1058636267>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "----end-----"
CMD /bin/bash
2.构建镜像以及测试
docker build -f dockerfile路径 -t 镜像名:[tag]
docker build -f /home/dockerfile/Dockerfile02 -t mycentos:1.0 .
3.列出镜像制作的历史
docker history 镜像id
4.CMD和ENTRYPOINT的区别
##CMD
编写dockerfile
FROM centos
CMD ["ls","-a"]
##docker run 镜像id -l 只能是替换 等同于linux中的 (ls -a 替换成 l)
##ENTRYPOINT
编写dockerfile
FROM centos
ENTRYPOINT["ls","-a"]
##docker run 镜像id -l 这是命令的追加 (ls -a 追加成 ls-al)
制作tomcat
1.编写Dockerfile
FROM centos
MAINTAINER cui<10258636267@qq.com>
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u202-linux-x64.tar /usr/local/
ADD apache-tomcat-9.0.43.tar.gz /usr/local/
RUN yum -y install vim
ENV JAVA_HOME /usr/local/jdk1.8.0_202
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.43
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.43
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.43/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.43/bin/logs/catalina.out
2.构建镜像
docker build -t dytomcat .
3.运行镜像
docker run -d -p 9090:8080 --name cuitomcat -v /home/cui/build/tomcat/test:/usr/local/apache-tomcat-9.0.43/webapps/test -v /home/cui/build/tomcat/tomcatlogs:/usr/local/apache-tomcat-9.0.43/logs dytomcat
发布镜像
-
docker login -u 用户名 回车 输入dockerHub的密码
-
root@qsrobot:~# docker push cui/tomcat:1.0 发布到dockerHub上
-
发布到阿里云上如下操作