赞
踩
容器是独立运行的一个或一组应用以及它们的运行态环境。可以理解为是镜像的示例(类与对象一对多的关系)。
容器的属性:
容器的启动主要讲如下几种启动方式:
Docker使用run命令启动一个容器时执行了一系列的标准操作:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载
- 利用镜像创建并启动一个容器
- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
- 从地址池配置一个 ip 地址给容器
- 执行用户指定的应用程序
- 执行完毕后容器被终止
补充:显示容器的详细信息:docker inspect [container_id or container_name]
终止一个运行中的容器有两种方式:
进入Docker容器比较常见的几种做法如下:
使用docker exec进入Docker容器
- docker exec -it [container_id] /bin/bash #通过编写 shell 脚本进入容器
- docker exec -it [container_id] python # 通过编写 python 进入容器
- docker exec -it [container_id] ip a # 打印出运行容器的ip地址
请参考《如何进入Docker容器》
当使用docker export把一个容器导出到本地文件之后还可以使用docker import命令把该文本导入到本地镜像。
- # 举例
- cat ubuntu.tar | sudo docker import - my_ubuntu_test
在前一篇关于镜像的文章中讲到过使用docker load命令导入一个镜像快照到本地镜像,此处又使用了docker import命令导入一个容器的快照到本地镜像,那这两种方式都有什么本质性的区别呢?在《Docker从入门到实践》中有非常不错的说明,具体内容如下:
这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。
删除容器使用docker rm命令与前面的删除镜像(docker rmi)命令非常相似,注意区分(rmi remove image)。
在命令中有一个-f参数,用于强制删除一个正在运行的容器:
docker rm a10910619d78 1883c0b2bd57 0f1bd9eaefff
docker rm `docker ps -a -q`
基于某个 image 创建了一个container 后面安装了一些软件 然后将这个container 重新发布为新的 image (不推荐)
docker container commit ( 简写成 docker commit )
- 1. docker run -it centos ( 运行centos )
- 2. yum install -y vim ( 安装vim )
- 3. exit (退出运行的容器)
- 4. docker container ls -a (查看所有的容器)
- 5. docker commit [container的name] [新image的名字] (根据容器 创建一个新的 image)
- 6. docker commit centos zonehoo/centos-with-vim
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。