docker容器的启动、停止、运行、导入、导出、删除
运行容器:docker run -t -i imagename /bin/bash、docker run imagename /bin/bash
参数-t让Docker分配一个伪终端并绑定在容器的标准输入上,-i让容器的标准输入保持打开。
使用docker run命令来启动容器,docker在后台运行的标准操作包括
1.检查本地是否存在指定的镜像,不存在则从公有仓库下载
2.使用镜像创建并启动容器
3.分配一个文件系统,并在只读的镜像层外面挂载一层可读可写层
4.从宿主主机配置的网桥接口中桥接一个虚拟接口道容器中去
5.从地址池分配一个ip地址给容器
6.执行用户指定的应用程序
7.执行完毕之后容器被终止
docker start 直接将一个已经终止的容器启动运行起来
docker restart 命令来重启一个容器
docker stop 来终止一个运行中的容器。使用docker ps -a来看终止状态的容器。
进入运行中的后台程序:有时候我们加了参数-d,这时容器自动进入后台运行。这个时候我们要再次进入容器,docker attach是Docker自带的命令,docker attach imagename,若有多个用户attach到一个容器,一个窗口命令阻塞,其他窗口都无法执
行,nsenter命令:在util-linux包2.23版本后都有包含。nsenter可以访问另一个进程的名字空间
docker ps
查看正在运行的容器
docker ps -a查看所有容器
进程的PID# docker inspect -f {{.State.Pid}} c74e0f07a914
或者:PID=$(docker-pid 5d1ba7f7affc)
有了PID后,可以nsenter进入容器:nsenter --target 21140(得到的PID) --mount --uts --ipc --net --pid
docker export 5d1ba7f7affc > ubuntu.tar:导出一个id为5d1ba7f7affc的容器为ubuntu.tar快照
cat ubuntu.tar | docker import - test/ubuntu:7 导入容器快照作为镜像
docker import http://xxxx.com/image_test.tgz test/image_test:导入一个url为镜像快照
镜像快照load、容器快照import导入的区别:
docker中可以使用docker load来导入镜像,也可是使用docker import来导入一个容器快照到docker镜像。两者的区
别是容器快照将丢弃所有的历史记录和元数据信息。而镜像保存完整的记录,因此要更大些。
docker rm 容器id:来删除一个终止状态的容器,加-f强制删除