docker学习(二)
1.启动后进入容器的方法
自命名启动一个容器 --name
exec 进入容器方法(推荐使用)
2.删除所有容器
3.启动时进行端口映射
-p参数端口映射
不同指定映射方法
随机映射
4.挂载时创建卷
挂载卷
容器内站点目录: /usr/share/nginx/html
在宿主机写入数据,查看
设置共享卷,使用同一个卷启动一个新的容器
查看卷列表
5.创建卷后挂载
创建一个卷
指定卷名
查看卷路径
使用卷创建
设置卷
查看使用的端口
6.手动将容器保存为镜像
启动一个centos6.8的镜像
启动完成后镜像ssh连接测试
将容器提交为镜像
使用新的镜像启动容器
在容器安装httpd服务
编写启动脚本脚本
再次提交为新的镜像
启动镜像,做好端口映射。并在浏览器中测试访问
7.Dockerfile指令集
dockerfile主要组成部分:
dockerfile常用指令:
dockerfile其他指令:
8.创建一个Dockerfile
创建第一个Dockerfile文件
构建docker镜像
使用自构建的镜像启动
8.使用Dcokerfile安装kodexplorer
Dockerfile文件内容
9.Docker 镜像为什么分层
镜像分层最大的一个好处就是共享资源。
比如说有多个镜像都从相同的 base 镜像构建而来,那么 Docker Host 只需在磁盘上保存一份 base 镜像;同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。
如果多个容器共享一份基础镜像,当某个容器修改了基础镜像的内容,比如 /etc 下的文件,这时其他容器的 /etc 是不会被修改的,修改只会被限制在单个容器内。这就是容器 Copy-on-Write 特性。
10.可写的容器层
当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。
所有对容器的改动 - 无论添加、删除、还是修改文件都只会发生在容器层中。只有容器层是可写的,容器层下面的所有镜像层都是只读的。
11.容器层的细节说明
镜像层数量可能会很多,所有镜像层会联合在一起组成一个统一的文件系统。如果不同层中有一个相同路径的文件,比如 /a,上层的 /a 会覆盖下层的 /a,也就是说用户只能访问到上层中的文件 /a。在容器层中,用户看到的是一个叠加之后的文件系统。
文件操作的
只有当需要修改时才复制一份数据,这种特性被称作 Copy-on-Write。可见,容器层保存的是镜像变化的部分,不会对镜像本身进行任何修改。
这样就解释了我们前面提出的问题:容器层记录对镜像的修改,所有镜像层都是只读的,不会被容器修改,所以镜像可以被多个容器共享。