上一篇中,我们学习了如何pull(下载)一个镜像,然而镜像是动态的,镜像运行起来后才能称为容器,才能被使用。所以接下来要学习一下如何运行一个容器。
docker run [可选参数] images :运行
测试一下,首先我们pull一个centos的镜像(当然,直接run也可以,我们在测试hello-world的时候就知道了run命令会帮我们pull)
后台运行的“坑”
docker容器在后台运行,要求必须有一个前台进程,否则会自己停止。或者说,这个容器运行后要干点事情,否则会觉得自己没有价值而自杀。但是你可以通过start命令再开启它。
当一个容器没有事情干的时候,也会自己停掉。
exit:退出进入的容器,并停止容器的运行(但如果是一个docker run -d后台开启的容器,exit后并不会停止容器的运行,而是继续挂载在后天)
ctrl+P+Q:退出容器,不停止容器的运行,让其挂载在后台。
通过观察前缀的变化,得知已经退出容器。
注意:exit后再进入容器需要先start这个容器而不是重新run一个。重新run的将是一个全新的容器。
查看容器
docker ps :查看正在运行的容器
docker ps -a: 查看正在运行的容器+历史运行过的容器
docker ps -a=3 查看3个容器
docker ps -aq :查看正在运行的容器+历史运行过的容器,只显示容器id
删除容器
docker rm 容器id :删除运行过的容器。用这个命令删除正在运行的容器会报错“You cannot remove a running container”。
docker rm -f 容器id: 强行删除一个正在运行的容器
docker rm -f $(docker ps -aq):强行删除所有容器(常用!)
启动和停止容器
docker start 容器id :启动一个历史上运行过但停止了的容器(当然你也可以像一开始讲的那样用run+镜像名去启动)
run启动和start启动的区别可以看这张图:
docker restart 容器id:重新启动
docker stop 容器id:关闭容器
docker kill 容器id:关不掉的杀掉
查看容器日志
查看容器中的进程信息
docker inspect 容器id: 查看元数据
进入容器
上面讲过run -it可以运行并进入容器,那为什么还要学进入容器呢?
因为run -it是新开一个容器并进入容器,而我们想要的是进入一个已经开启的容器。通常容器都是以后台方式运行的,我们需要进入容器修改一些配置。所以下面讲的是如何进入后台运行的容器。
法(一)常用!
docker exec -it 容器id COMMAND :
docker exec -it 容器id /bin/bash :进入容器后开启一个新的终端。
法(二)
docker attach 容器id:进入容器正在执行的终端。
从容器内拷贝文件到宿主机上
可以这样理解,容器就是一个小型Linux虚拟机,所以实现的就是从虚拟机拷贝文件到宿主机上。虚拟机拷贝文件需要用到VMware Tools或者用邮箱通过网络发,但是docker直接用命令就能实现!