FROM docker/whalesay:latest
RUN apt-get -y update &&apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
然后使用docker build -t name .命令来构建一个image,在这里,FROM是源镜像,如构建mysql可以使用FROM ubuntu:14.04来指定 *** 作系统,RUN是跑的一些shell命令,我们能通过这些命令来在image持久化一些 *** 作。CMD则是docker run时执行的命令。
本次安装,没有选择现成的镜像,从docker的github上,把dockerfile搞到本地,然后build镜像。如果不出意外的话,步骤很简单。
dockerfile文件在此: https://github.com/docker-library/mysql/blob/master/8.0/Dockerfile.debian
把dockerfile:Dockerfile.debian复制也好,wget也好,搞到本地,然后执行:
经过漫长的等待,期待,docker给我报了个错误。截图如下:
可见,报错内容为:目录不存在,不过/var/lib/docker/tmp/docker-builderxxxxx这个目录,是build在运行时的临时目录,build完成后,就会被删掉。所以,在build的时候,这里有没有docker-builderxxxxx这个目录,目录下有没有config,我也不知道。
但是问题还是要解决的,看一下dockerfile的内容
这样,把dockerfile里需要的内容,都手动的放到当前目录里,在此build。就可以通过了。
为什么直接执行build,会提示在tmp目录下找config呢?我觉得是build的时候,tmp目录下的docker-builderxxxxx目录会映射到当前目录。报的这个错误其实就是从当前目录找config文件,当前目录没有,就去映射的docker-builderxxxxx目录下找,而docker-builderxxxxx目录下因为我不知道的原因也没有,所以就报错了。只需要确保当前目录下有dockerfile里需要的文件就可以解决了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)