【6.2】docker基础知识 容器

2022-03-23  本文已影响0人  王滕辉

镜像和容器的关系可以看做是 java 中类和实例的关系。镜像时静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

镜像使用的是分层存储,容器也是一样的。每一个容器运行时是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个容器运行时读写而准备存储层为容器存储层。

容器存储层的生命周期和容器一样,容器消亡时,容器存储层也会消失。因此任何保存于容器存储层的信息都会随着容器的删除而丢失。

按照Docker最佳实践的要求,容器不应该向存储层内写任何数据,容器存储层要保持无状态化。所有文件的写入操作都应该使用volume 数据卷、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或者网络存储)发生读写,其性能和稳定性更高。

数据卷的生命周期独立于容器,容器消亡,数据卷不会消亡。因此使用数据卷之后,容器删除或者重新运行之后数据不会丢失。

容器的基本命令

# 查看容器
docker ps -a
docker ps -a -q # 查看所有停止的容器

# 创建容器
docker create -it nginx

# 启动
docker start nginx

# 创建并启动
docker run nginx

# 当使用docker run命令创建启动容器时,Docker在后台运行的标准操作有下面几个步骤
# 1、检测本地是否存在指定的镜像,不存在就从公有仓库下载
# 2、利用镜像创建并启动一个容器
# 3、分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
# 4、从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
# 5、从地址池配置一个IP地址给容器
# 6、执行用户指定的应用程序
# 7、执行完毕后终止容器

# 重启
docker restart nginx

# 进入容器中 几种方式 
# 1.docker attach 命令、
docker attach  nginx
# 2.docker exec 命令、
docker exec -ti nginx /bin/bash
# 3.nsenter工具

# 停止
docker stop nginx

# 移除
docker rm nginx
# -f, --force=false:强项终止并删除一个运行中的容器。
# -l, --link=false:删除容器的连接,但保留容器。
# -v, --volumes=false:删除容器挂载的数据卷。

# 显示 细节
docker inspect nginx


# 清理所有处于终止状态的容器
docker container prune 

# 启动一个容器,容器结束运行即删除
docker run -it --rm nginx

# 导出
docker export nginx

# 导入
docker import nginx

# 查询帮助
docker container --help

点波关注 系统搭建(docker)

上一篇 下一篇

猜你喜欢

热点阅读