赞
踩
新建一个dockerfile1文件:vim dockerfile
通过这个脚本来生成镜像:
#文件中的内容,指令都是大写的
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "-----end-----"
CMD /bin/bash
然后通过: docker build -f dockerfile -t wch/centos .
-f 代表镜像的地址及dockerfiles01
-t target生成名称为wch/centos的centos镜像
记得最后有一个 . (点)
构建镜像
这个卷和外部一定有一个同步的目录!
查看卷挂载路径:docker inspect 1c7bbe007566
``
1、编写一个dockerfile文件
2、docker build 构建成为一个镜像
3、docker run 运行镜像
4、docker push 发布镜像(DockerHub、阿里云镜像仓库)
查看官方是怎么做的?
很多官方镜像都是基础包,很多功能都是没有的,我们通常会搭建自己的镜像。
基础知识:
1、每个保留关键字(指令)都必须是大写字母
2、执行顺序是从上到下顺序执行
3、# 表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交
步骤:开发、部署、运维
DockerFile:构建文件,定义了一切的构建步骤、源代码。
DockerImages:通过DockerFile构建生产的镜像,最终发布和运行的产品。
Docker容器:容器就是镜像运行起来的样子,即运行提供的服务器。
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的,姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 步骤,添加tomcat等镜像
WORKDIR # 镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 对外暴露的端口
CMD # 指定容器启动时,要运行的命令,该指令只能在文件中存在一次,如果有多个,则只执行最后一条,可被替代
ENTRYPOINT # 指定容器启动时,要运行的命令,可以追加命令
ONBUILD # 当构建一个被继承的 DockerFile 这个时候就会运行 ONBUILD 的指令,触发指令
COPY # 类似ADD,将我们文件拷贝到镜像中
ENV # 构建的时候设置环境变量(如设置mysql密码!!!)
CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
构建一个最简单的 dockerfile-cmd-test:
FROM centos
CMD ["ls","-a"]
构建镜像:
docker build -f dockerfile-cmd-test -t cmdtest .
执行进入镜像:
docker run f55d10e02520(自己的镜像id)
可以看到,进入镜像后,直接执行了cmd命令 ls -a
试一下追加一个 -l 命令,希望返回ls -al,返回列表的详细数据,但是结果如下
[root@VM-0-16-centos dockerfiles]# docker run f55d10e02520 -l
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"-l\": executable file not found in $PATH": unknown.
cmd的情况下,-l 替换了 CMD[“ls”,"-a"] 命令,但是 -l 不是命令,所以报错
试一下构建一个 dockerfile-entrypoint-test:
FROM centos
ENTRYPOINT ["ls","-a"]
构建镜像:
docker build -f dockerfile-entrypoint-test -t entrypointtest .
执行进入镜像:
docker run 3f2f94ab5d75(自己的镜像id)
再试一下 -l,可以发现,这样是行得通的!!
# 编写Dockerfile的文件 FROM centos MAINTAINER wch<631730809@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 # 通过这个文件构建镜像 命令:docker build -f dockerfiles01 -t wch_centos01 .
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。