使用dockerfile文件创建一个镜像
1.新建文件
vi dockerfile
编辑内容为:
FROM centos
VOLUME ["/dockerfileHostShare", "/dockerfileContainerShare"]
CMD echo 'running centos'
CMD /bin/bash
# equals:
# docker run -v /镜像目录下的_data目录:/dockerfileHostShare -v /镜像目录下的_data目录:/dockerfileContainerShare -it centos /bin/bash
# docker build -f dockerfile -t dockhapi/one:v2 执行以dockerfile文件构建镜像
以上内容相当于:
docker run -v /镜像目录下的_data目录:/dockerfileHostShare -v /镜像目录下的_data目录:/dockerfileContainerShare -it centos /bin/bash
比如我这次共享的目录就默认在属主机的:
/var/snap/docker/common/var-lib-docker/volumes/b9433348d46f76e52553fe0c8c04902f95cf7f48243e186dbed0658b104c3b99/_data目录下,对应于镜像中的/dockerfileHostShare目录。
2. 构建镜像
docker build -f dockerfile -t dockhapi/one:v2
然后出现
![](https://img.haomeiwen.com/i9031347/8266f823c646feb3.png)
3. 验证并运行
验证
docker images
![](https://img.haomeiwen.com/i9031347/9268982d5072b395.png)
可以看到dockhapi/one:v2镜像创建成功,大小和centos镜像一样大,这是因为该镜像就是在centos基础上构建的。
运行镜像
docker run -name=temp -it dockhapi/one:v2 /bin/bash
![](https://img.haomeiwen.com/i9031347/b158609172bc50ed.png)
可能会遇到的错误
我在构建是就会出现错误如:
error checking context: 'can't stat '/root/.IntelliJIdea2018.3''.
我就想我的intellij关你毛事啊,然后谷歌下才知道,应该是docker进程没有该目录下的权限造成的!因为我现在还是在root目录下运行。所以我就移至home目录下,但同样home目录下的别的无关目录还是会有影响,所以我创建了一个新的目录放dockerfile就行了!
关于dockerfile的后面有再写,该洗洗睡了!
网友评论