开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情
案例1
需求:创建一个镜像(基于tomcat)里面要有一个index.html,并写入Hello j Docker
1,在宿主机创建一空白目录
mkdir -p /usr/local/docker/demo1
2、在该目录下,创建一文件Dockerfile
vim Dockerfile
3 、其内容为:
FROM tomcat //指定tomcat最新版本镜像
RUN echo 'Hello Docker'>/usr/local/tomcat/webapps/ROOT/index.html
这个 Dockerfile 很简单,一共就两行。涉及到了两条指令,FROM 和 RUN。
4 、构建镜像
docker build -t demo.
5 、运行镜像所在容器
docker run --rm --name demo1-8080 -p 8080:8080 -d demo
FROM centos
RUN apt-get update \
&& apt-get install -y gcc libc6-dev make \
&& wget http://download.redis.io/releases/redis-4.0.1.tar.gz \
&& tar xzf redis-4.0.1.tar.gz \
&& cd redis-4.0.
mkdir -p /usr/local/docker/demo
vim Dockerfile
访问浏览器即可成功该问
构建镜像Build
回到之前定制的 tomcat 镜像的 Dockerfile 来。现在我们明白了这个Dockerfile 的内容,那么让我们来构建这个镜像 吧。
在 Dockerfile文件所在目录执行:
docker build -t demo.
从命令的输出结果中,我们可以清晰的看到镜像的构建过程。
docker build 命令进行镜像构建。其格式为:
docker build [选项] <上下文路径/URL/->
docker build -t demo1. //. 代表Dockerfile上下文路径
· -t :指定要创建的目标镜像名
·. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
在这里我们指定了最终镜像的名称- t demo1,构建成功后,我们可以像之前运行tomcat 那样来运行这个镜像, 其结果会和 tomcat一样。(如果有版本号名称:demo1:01)
案例2
基于上一个镜像(基于tomcat)外部复制一个文件(图片),并复制到容器中并能访问
记得上传图片到/usr/local/docker/demo1目录下
基于如上修改Dockerfile
FROM tomcat //指定tomcat最新版本镜像
WORKDIR /usr/local/tomcat/webapps/ROOT/ //切换到该目录下
RUN rm -rf * //将当前目录的文件都删掉
COPY 1.png /usr/local/tomcat/webapps/ROOT/
RUN echo 'Hello qfnj Docker'>/usr/local/tomcat/webapps/ROOT/index.html
WORKDIR用来切换工作目录的。而不是用RUN。
构建镜像
docker build –t 镜像名 . //Dockerfile上下文路径
COPY 格式:
• COPY <源路径>... <目标路径>
• COPY ["<源路径1>",... "<目标路径>"]
和 RUN 指令一样,也有两种格式,一种类似于命令行,一种类似于函数调用。
COPY 指令将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置。比如:
COPY qfjy.png /usr/local/tomcat/webapps/ROOT/
<目标路径> 可以是容器内的绝对路径,也可以是相对于工作目录的相对路径(工作目录可以用 WORKDIR指令来指定)。目标路径不需
要事先创建,如果目录不存在会在复制文件前先行创建缺失目录。
此外,还需要注意一点,使用 COPY 指令,源文件的各种元数据都会保留。比如读、写、执行权限、文件变更时间等。这个特性对于镜
像定制很有用。特别是构建相关文件都在使用 Git 进行管理的时候。
案例3
实际开发中,利用Dockerfile 将一个war包生成镜像的Dockerfile:
docker下创建项目工程名称
mkdir -p /usr/local/docker/exam
cd /usr/local/docker/exam
将桌面exam.zip复制到访目录下
cp exam-1.0-SNAPSHOT.zip /usr/local/docker/exam/
创建镜像文件Dockerfile
docker build -t exam .
docker run -it qfjy_exam bash