docker学习(二)

1.启动后进入容器的方法

自命名启动一个容器 --name

docker学习(二)

exec 进入容器方法(推荐使用)

docker学习(二)

2.删除所有容器

docker学习(二)

3.启动时进行端口映射

​-p参数端口映射

 

docker学习(二)

不同指定映射方法

docker学习(二)

随机映射

docker学习(二)

4.挂载时创建卷

挂载卷

docker学习(二)

容器内站点目录: /usr/share/nginx/html

在宿主机写入数据,查看

docker学习(二)

设置共享卷,使用同一个卷启动一个新的容器

docker学习(二)

查看卷列表

docker学习(二)

5.创建卷后挂载

创建一个卷

docker学习(二)

指定卷名

docker学习(二)

查看卷路径

docker学习(二)

使用卷创建

docker学习(二)

设置卷

docker学习(二)

查看使用的端口

docker学习(二)

6.手动将容器保存为镜像

启动一个centos6.8的镜像

docker学习(二)

启动完成后镜像ssh连接测试

将容器提交为镜像

docker学习(二)

使用新的镜像启动容器

docker学习(二)

在容器安装httpd服务

docker学习(二)编写启动脚本脚本

docker学习(二)

再次提交为新的镜像

docker学习(二)

启动镜像,做好端口映射。并在浏览器中测试访问

docker学习(二)

7.Dockerfile指令集

dockerfile主要组成部分:

docker学习(二)

dockerfile常用指令:

docker学习(二)

dockerfile其他指令:

docker学习(二)

8.创建一个Dockerfile

创建第一个Dockerfile文件

docker学习(二)

构建docker镜像

docker学习(二)

使用自构建的镜像启动

docker学习(二)

8.使用Dcokerfile安装kodexplorer

Dockerfile文件内容

docker学习(二)

9.Docker 镜像为什么分层

 

镜像分层最大的一个好处就是共享资源。

比如说有多个镜像都从相同的 base 镜像构建而来,那么 Docker Host 只需在磁盘上保存一份 base 镜像;同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。

如果多个容器共享一份基础镜像,当某个容器修改了基础镜像的内容,比如 /etc 下的文件,这时其他容器的 /etc 是不会被修改的,修改只会被限制在单个容器内。这就是容器 Copy-on-Write 特性。

10.可写的容器层

当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。

docker学习(二)

所有对容器的改动 - 无论添加、删除、还是修改文件都只会发生在容器层中。只有容器层是可写的,容器层下面的所有镜像层都是只读的

11.容器层的细节说明

镜像层数量可能会很多,所有镜像层会联合在一起组成一个统一的文件系统。如果不同层中有一个相同路径的文件,比如 /a,上层的 /a 会覆盖下层的 /a,也就是说用户只能访问到上层中的文件 /a。在容器层中,用户看到的是一个叠加之后的文件系统。

文件操作的

docker学习(二)

 

只有当需要修改时才复制一份数据,这种特性被称作 Copy-on-Write。可见,容器层保存的是镜像变化的部分,不会对镜像本身进行任何修改。

这样就解释了我们前面提出的问题:容器层记录对镜像的修改,所有镜像层都是只读的,不会被容器修改,所以镜像可以被多个容器共享。