Docker(五)创建本地镜像
容器实际上是在父镜像的基础上创建了一个可读写的文件层级,所有的修改操作都在这个文件层级上进行,而父镜像并未受到影响,根据这种修改创建新的本地镜像,有两种不同的方式方式一:1、创建容器根据本地镜像创建一个容器:a、执行【docker image】命令,查看本地镜像;b、根据本地镜像中的nginx镜像,创建一个nginx容器,并启动;c、将宿主机中的一个index.html文件拷贝到容器中;...
容器实际上是在父镜像的基础上创建了一个可读写的文件层级,所有的修改操作都在这个文件层级上进行,而父镜像并未受到影响,根据这种修改创建新的本地镜像,有两种不同的方式
方式一:
1、创建容器
根据本地镜像创建一个容器:
a、执行【docker image】命令,查看本地镜像;
b、根据本地镜像中的nginx镜像,创建一个nginx容器,并启动;
c、将宿主机中的一个index.html文件拷贝到容器中;
d、访问容器,发现改变已经生效;
e、接下来重新创建一个容器,名为nginx2;
f、访问nginx2,发现nginx2中的默认页面时nginx中的,没有改变;
2、创建本地镜像
根据刚刚创建的容器,创建一个本地镜像。
【docker commit -m "update index.html" --author='Rlu' [镜像所依据的容器id] Rlu/nginx:v1】
解释:a、【-m】:创建该镜像的一个简单描述;
b、【--author】:该镜像的一个作者;
c、【Rlu/nginx 】:表示仓库名,Rlu是名称空间,nginx是镜像名;
d、【v1】:表示仓库的tag
创建完成后通过【docker images】可以查看刚刚创建的镜像。之后运行一个该镜像的容器,发现该容器的默认首页已经改变。
方式二:(Dockerfile)
commit方式存在问题:无法重复,体积较大,所以考虑使用【Dockerfile】。
Dockerfile就是一个普通文件,其中包含了一条条指令,每一条指令构建一层。
1、在一个空白目录创建一个名为Dockerfile的文件,其中包含的内容:
FROM nginx |
MAINTAINER Rlu “Rlu@mail.com” |
RUN echo 'hello world!' >..[路径]../index.html |
COPY ./hello.html /.... |
a、FROM nginx表示该镜像的构建,以已有的nginx镜像为基础,在其基础上构建。
b、MAINTAINER 创建作者的信息以及邮箱信息(非必须)。
c、RUN指令用来修改镜像,安装程序、安装库以及配置应用。
d、COPY 将上下文的hello.html拷贝到镜像。
2、文件创建完成之后,【docker build -t Rlu/nginx:v1】
a、【-t】用来指定命名空间,仓库名以及TAG等信息。
3、【docker images】查看
4、创建容器并启动。
更多推荐
所有评论(0)