Docker深入浅出系列教程——容器管理【附加视频】

时间:2022-05-03 08:28:06

我是架构师张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐。如果你和我的看法不一样,请关注我的头条号,我们一起奇闻共赏,疑义相析。

接下来来讲解Docker三大组件之一的容器,如果说镜像是静态的只读文件,那么容器就是带有运行时需要的可写文件层。也可以这样理解,镜像是对象的模板——类,容器是类生成的对象,镜像只有一个,对象可以有很多个。如果大家觉得看文字不过瘾,可以收看我的视频

Docker深入浅出系列教程——容器管理【附加视频】

1.新建容器


docker create -it ubuntu:lastest //该命令创建的容器处于停止状态,可以使用docker start启动。
 
2.启动容器

docker start 容器id
 
3.创建并启动容器

docker  run ubuntu /bin/echo 'hello' 等价于docker create,再执行docker run
 
该指令背后一系列别隐藏操作,包括:
  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载;
  • 利用镜像创建一个容器,并启启动该容器;
  • 分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层;
  • 从宿主主机配置的的网桥接口中,桥接一个虚拟接口口到容器中;
  • 从网桥的地址池配置一个IP地址给容器, 口执行用户指定的应用程序;
  • 执行完后,容器被自动终止。
 
docker run-it ubuntu:14.04 /bin/bash  //下面的命令启动一个bash终端,允许用户进行交互;按ctrl+d或输入exit命令来退出容器。
 
4.守护态运行

docker exec -itd 453698741 bash //exec进入容器,并启动bash ; -i参数来保持标准输入打开,-t并且分配一个伪终端,-d后台运行
 
 5.删除容器

docker rm 删除终止或退出状态的容器,不能删除运行中的容器,
-f 强行删除。
 
6.导入导出容器

6.1.导出容器
docker export -o demo.tar e12  //-o选项来指定导出的tar文件名
docker export r78 > demo2.tar  //重定向
 
6.2.导入容器
docker import demo.tar test/ubuntu:v1.0
docker load导入镜像相似,区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态)而镜像存储文件将保存完整记录,体积也更大。
 
7.小结

高可靠性机制:a.例如使用Haproxy工具来代理容器访问,故障时,快速切换。b.指定合适的容器重启策略,来自动重启退出的容器。
 
 

如果对Docker有更深的洞察,欢迎补充和讨论,感谢您的捧场。我是张飞洪,我为博客园的读者写故事。我会给你呈现程序员眼中的世界,请关注我的头条号,或者加我的QQ群【105365283】一起学习!

Docker深入浅出系列教程——容器管理【附加视频】 Docker深入浅出系列教程——容器管理【附加视频】