『中级篇』什么是Container(15)
2018-08-28 10:48:05
李明
  • 访问次数: 382
  • 注册日期: 2018-07-09
  • 最后登录: 2022-11-17

原创文章,欢迎转载。转载请注明:转载自 IT人故事会,谢谢!
原文链接地址: 『中级篇』什么是Container(15)

镜像(Image),跟你装操作系统的iso镜像一个概念。容器(Container),就是基于这个镜像启动的操作系统。一个镜像,可以用来在各种地方启动任意多个容器,也就是一个镜像可以装很多个操作系统了。当然,镜像,不一定是操作系统的镜像,也可能是软件的镜像。等你以后明白了,你就知道我这解释也是不完全对的。但是,你可以先这么理解。github源码: https://github.com/limingios/docker.git

什么是Container

  • 通过Image创建的

  • 在Image layer之上建立一个container layer(可读写)

  • 类比面向对象,类和实例,容器就是实例,Image就是类

  • Image负责application的存储和分发,Container负责运行app

1240

Container的操作

下面准备好Image

cd ./labs/helloworld
sudo docker build -t liming/hello-world:latest .

1240

1240

  • 创建

sudo docker image ls
sudo docker container ls
sudo docker run liming/hello-world
sudo docker container ls
 sudo docker container ls -a

1240

1240

1240

运行上边的命令发现,为什么每次 sudo docker container ls后,里面都是空的,都没有列表呢,因为后台没有运行程序,所以不会常驻内存,所以后面的status = exited 退出的状态。

sudo docker run -it liming/hello-world

1240

增加-it命令,可以让后端进行运行,直接进入容器,新建的状态发生了改变,up 和 exited。通过ls,可以看到里面类似一个linux系统的文件格式。

1240

  • 列表

sudo docker container ls
  • 删除

sudo docker rm  容器id

docker的命令分布

  • Management Commands (管理命令)

  • Commands (配合管理的运行命令)

1240

1240

技巧批量删除容器

#只删除退出的docker rm  $(docker container ls -f "status=exited" -q)#全部删除docker rm  $(docker container ls -aq)

1240

命令合集

1240

个人主页: IT人故事会
PS:想玩docker熟悉 命令是首要,这个东西就是多练多实践,慢慢就手到擒来!