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上

  • 发布到阿里云上如下操作

docker 总结

posted @ 2021-02-09 23:13  shamozhicheng  阅读(73)  评论(0编辑  收藏  举报