Dockerfile文件那些事(一)

Dockerfile文件那些事(一)

Dockerfile是用来构建镜像的,该文件中有这么几个指令:

FROM

MAINTAINER

RUN

EXPOSE

 

上面这四个指令以后咱们慢慢说他们的作用

 

还有几个常用的指令:

CMD

ENTERYPOINT

ADD

COPY

VOLUME

WORKDIR

ENV

USER

这些命令就算我都说了也记不住,咱们边学边记忆.

先说下Dockerfile构建过程

1.从基础镜像运行一个容器

2.执行一条指令,对容器作出修改

3.执行类似docker commit的操作,提交一个新的镜像层

4.再基于刚提交的镜像运行一个新容器

5.执行Dockerfile中的下一跳指令,直至所有指令执行完毕.

有的时候楼主是挺醉的,为啥呢,每次想有点作为的时候,比如拯救世界啊,帮国家领导人寻找核弹头啊,帮邻居的小孩找皮球啊,都会有各种阻力在阻碍楼主前进.

[email protected]:/# mkdir -p dockerfile/df_test2/
[email protected]:~# cd dockerfile/df_test2/
[email protected]:~/dockerfile/df_test2# vim Dockerfile

文件的内容如下:

FROM ubuntu
MAINTAINER syx '[email protected]'
RUN apt-get update && apt-get install -y nginx
EXPOSE 80

先别管这些指令啥意思,你先猜猜

楼主为了简单起见,用了最简单的指令来组成一个Dockerfile.注意这个文件的名字必须叫Dockerfile.

[email protected]:~/dockerfile/df_test2# docker build -t="syx/df_test2" .

之后,经过漫长的等待,你想想吧,楼主一共就这么几行命令就执行了快一个小时,而且中间还在不停的出错,醉了,日了狗了.可想而知如果指令挺多会怎样了,楼主正在想办法解决在构建Dockerfile的时候挺慢的问题,如果你有好的办法请不吝赐教.谢谢!!

[email protected]:~/dockerfile/df_test2# docker build -t="syx/df_test2" .
[email protected]:~/dockerfile/df_test2# docker images

能看到我们自己构建的镜像了.

是不是很神奇,在这里你需要确保你的机器能够上网,楼主搞不懂为啥在构建Dockerfile的时候是如此的缓慢,楼主在使用Dockerfile构建镜像的时候是从http://archive.ubuntu.com/ubuntu这个网站上pull的内容,这个网站是国外的,需要翻墙或者通过一定的手段才能快速的pull东西.楼主暂时也不会翻墙,也没啥好的手段,如果你有,请指点一二!!!感激不尽!!!定当给你跪舔一波!

时间: 2024-11-06 07:35:12

Dockerfile文件那些事(一)的相关文章

docker-maven-plugin 完全免Dockerfile 文件

# DockerSpringBootPlugin docker-maven-plugin 完全免Dockerfile 文件 使用docker-maven-plugin 进行完全免 Dockerfile 文件 注意 EXPOSE 在spring boot 中不起作用 Mvnen : mvn clean package docker:build <build> <plugins> <plugin> <groupId>org.springframework.boo

记录一次在 VirtualBox的添加共享windows文件后,没发现文件的事

在VirtualBox设置完桥接添加ip后,在设备中添加共享windows文件,“e:\work ”,发现共享目录没有文件.使用了各种reboot之后,还是没有发现共享文件夹,重新设置还是不行,用mount命令依然无法解决. 重新添加共享文件夹,之后勾选固定分区,(不要勾选自动挂载),之后出现了warning的提示,“broken shared folder”. 记:VirtualBox的Shared folder功能出现broken shared folder错误, 在查阅网上信息后,发现:

Docker定制容器镜像(利用Dockerfile文件)

1.创建Dockerfile文件 新建一个目录,在里面新建一个dockerfile文件(新建一个的目录,主要是为了和以防和其它dockerfile混乱 ) [[email protected] myfiles]# mkdir centos6.8_dockerfile [[email protected] myfiles]# [[email protected] myfiles]# cd centos6.8_dockerfile/ 创建dockerfile文件(vim Dockerfile) #

Dockerfile 文件

Dockerfile文件可以使用docker build 命令快速生成镜像指令如下: FROM   <iFmages>                   //用来指定从哪个镜像的基础上开始创建新的镜像 MAINTAINER  <author>              //设置镜像作者 RUN  <command>                    //设置 shell 或者 exec 执行的命令 ADD  <source> <destinaio

asp.net core中DockerFile文件中的COPY

今天在ubuntu系统中使用docker部署asp.net core时遇到了一个问题,docker build 的时候总会在最后一步提示 lstat obj/Docker/publish: no such file or directory. 并且执行docker images查看镜像的时候发现生成的镜像的REPOSITORY和TAG都是<none>. 当执行docker run的时候提示 Unable to find image 'crm:latest' locally 联想到build的时

ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)

原文:ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署) 按网上的做法用dockerfile文件是可以弄得出来的,http://www.docker.org.cn/article/119.html, 不过我想把网站文件放在外面硬盘目录,再映射进去,这样只要在硬盘目录中修改CSHTML文件后重启一下容器就行了 步骤如下: 1. vs中建立ASP.NET CORE网站,类名为coreweb1 2. 发布到c:\temp\coreweb1目录 3. 先在本地CMD

常用的Dockerfile文件

实验环境 系统版本:CentOS Linux release 7.6.1810 (Core)x64 Docker版本:18.09.5 关闭防火墙并禁止开机自启 systemctl stop firewalld.servicesystemctl disable firewalld 关闭selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux 重启 reboot 安装docker 1.安装docker

docker Dockerfile文件的编写部分命令

镜像的构建过程:编写dockerfile文件,执行docker build 进行构建镜像,最后docker run 运行容器镜像实例. docker build -t mycentos:1.01 . 构建镜像,最终的名字为mycentos,docker build -f /root/firstdockerfile/Dockerfile2 -t cmdtest . -f参数需要加绝对路径,当当前没有dockerfile文件时需要使用这个参数. docker run -it mycentos:1.0

Dockerfile文件详解 (转)(原文地址:https://www.cnblogs.com/panwenbin-logs/p/8007348.html)

什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档.可以使用在命令行中调用任何命令. Docker通过读取Dockerfile中的指令自动生成映像. docker build命令用于从Dockerfile构建映像.可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile. 例: docker build -f /path/to/a/Dockerfile Dockerfile的基本结构 Dockerfile 一般分为四部分: