linux cpu占用率如何看
237
2022-10-19
docker入门-构建新镜像-dockerfiles
当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
1、从已经创建的容器中更新镜像,并且提交这个镜像
2、使用 Dockerfile 指令来创建一个新的镜像
容器与镜像的关系
容器是镜像实例化而来,容器即进程,镜像即文件。一个镜像可以启动多个容器,镜像类似于虚拟机中的只读模板,属于一个独立的文件系统。
通过镜像创建一个容器
通过命令启动一个新容器
docker ps -a 查看所有容器docker run < 容器ID >
可以看到该ubuntu系统
使用-d,表示不进入该容器,该容器后台运行
目前该容器已启动
更新容器
我们进入该容器
docker exec -it f03b00737af7 /bin/bash
进入交互界面
执行
apt-get update
退出容器终端
exit
通过命令 docker commit 来提交容器副本
docker commit -m="has update" -a="eve" f03b00737af7 eve/ubuntu:v2022-6-13
执行成功
参数说明:
-m: 提交的描述信息
-a: 指定镜像作者
f03b00737af7:容器 ID
eve/ubuntu:v2022-6-13: 指定要创建的目标镜像名,后面是tag
文章参考:
images
可以看到,我们本地仓库上有这个镜像。
我们可以看到,该镜像虽然创立,但是没有开启一个容器实例。
docker run 7ddb91f00874 将镜像启动,创建一个容器
进入该容器看看
docker run -it 7ddb91f00874 /bin/bash
成功进入,但是提示没有ipv4的地址
输入pwd和ls,也确实可以使用。
从零创建新镜像
前面说过,镜像是一个文件。我们构建一个新的镜像,就是构建一个新文件。
dockerfile
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),用于构建镜像。每一条指令构建一层镜像,因此每一条指令的内容,就是描述该层镜像应当如何构建。
完整的镜像
执行过程
参数解析
参数分析
构建文件
我们先来看网上的dockerfile文件
Dockerfile[root@localhost dockerfile]# cat Dockerfile FROM centos:7MAINTAINER ZYQ <714840265@qq.com>ENV MYPATH /usr/localWORKDIR $MYPATHRUN yum -y install vim net-toolsEXPOSE 80CMD /bin/bash
参数解释
1、FROM centos:7 该image文件继承官方的centos7
2、ENV MYPATH /usr/local:设置环境变量MYPATH
3、WORKDIR $MYPATH:直接使用上面设置的环境变量,指定/usr/local为工作目录
4、RUN yum -y install vim && net-tools:在/usr/local目录下,运行yum -y install vim和yum -y install net-tools命令安装工具,注意安装后的所有依赖和工具都会打包到image文件中
5、EXPOSE 80:将容器80端口暴露出来,允许外部连接这个端口
6、CMD:指定容器启动的时候运行命令
执行build命令
docker build -t mycentos:1.0 .
正在执行
中途报错,我们来看看错误原因
不能安装yum、vim等工具。
这不影响我们生成镜像
docker images 查看docker所有镜像
生成的镜像有204M
使用命令进入创建的新镜像
docker run -it 260ab087f6e6 /bin/bash
看到可以正常操作
我们来验证下系统版本
主机为7.6.1819版本
下节将进行容器之间的通讯。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~