docker镜像那些事!您懂多少?

Posted Friends of the wind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker镜像那些事!您懂多少?相关的知识,希望对你有一定的参考价值。

思考三个问题

1、镜像是什么?
2、如何上传、下载镜像?
3、怎么自己创建镜像?


答案:

1、镜像 是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

2、 上传命令语法: docker push [OPTIONS] NAME[:TAG]
下载命令语法:docker pull [OPTIONS] NAME[:TAG]

3、 用两种方式创建自己的镜像:
第一种:用下载的镜像进行二次修改,创建成自己的。
1)编写Dockerfile文件
vim mydockerfile-centos

FROM centos
MAINTAINER hehe<12345@qq.com>
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 mydockerfile-centos -t mycentos:0.1 .
成功提示!

3)测试

第二种:用dockerfile 构建一个完整的镜像。

1)注意:必须关闭宿主机防火墙、setenforce
创建目录及文件

镜像文件:Dockerfile
编写说明文件:readme.txt
tomcat 、 jdk安装包

创建数据卷目录
test 、tomcatfile

2、编写Dockerfile

FROM centos 
MAINTAINER hehe<12345@qq.com>			  #基础镜像,一切从这里构建
COPY readme.txt /usr/local/readme.txt                  #复制文件
ADD jdk-8u231-linux-x64.tar.gz /usr/local/        #复制解压
ADD apache-tomcat-9.0.54.tar.gz /usr/local/       #复制解压
RUN yum -y install vim 
ENV MYPATH /usr/local                             #设置环境变量
WORKDIR $MYPATH                                   #设置工作目录
ENV JAVA_HOME /usr/local/jdk1.8.0_231             #设置环境变量
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.54 #设置环境变量
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib  #设置环境变量 分隔符是:
EXPOSE 8080                                       #设置暴露的端口
CMD /usr/local/apache-tomcat-9.0.54/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.54/logs/catalina.out                          # 设置默认命令

3、构建镜像

若dockerfile命名使用默认命名即Dockerfile, 则不用使用-f 指定文件
docker build -t mytomcat:0.1 .
成功如下图:

验证:

4、用此镜像,启动容器

命令:docker run -d -p 8080:8080 --name tomcat99 -v /test:/usr/local/apache-tomcat-9.0.54/webapps/test -v /tomcatlogs/:/usr/local/apache-tomcat-9.0.54/logs mytomcat:0.1

执行结果:

4、 验证:宿主机访问


以上是关于docker镜像那些事!您懂多少?的主要内容,如果未能解决你的问题,请参考以下文章

JVM内存的那些事,你了解多少?

Java 并发编程解析 | 关于线程机制的那些事,你究竟了解多少?

绿色|国内制造业智能生产那些事,你都知道多少?

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段

Docker 那些事儿容器为什么傲娇?全靠镜像撑腰(上)

Docker 那些事儿容器为什么傲娇?全靠镜像撑腰