Docker入门篇2:查看容器、运行容器、启动和停止容器、删除容器
大家好我是木木,在当今快速发展的云计算与云原生时代,容器化技术蓬勃兴起,Docker 作为实现容器化的主流工具之一,为开发者和运维人员带来了极大的便捷 。下面我们一起开始入门第二篇:查看容器、运行容器、启动和停止容器、删除容器。
环境准备
默认环境已经准备好,没有准备的可以参考:Docker入门篇1:搜索镜像、拉取镜像、查看本地镜像列表、删除本地镜像-CSDN博客
操作实战
查看容器 docker ps
docker ps:查看正在运行的容器
docker ps -a:查看所有容器(包括已经停止的容器)
目前因为环境没有运行容器所以看不出效果,看着都一样。后续运行容器并且做了停止容器的操作,再使用docker ps -a和docker ps可以看到它们的具体区别。
运行容器 docker run
注意:这些命令最好手动输入,直接复制可能会有字符编码的问题,导致识别不了,报错,下面会有说
运行容器docker run是Docker中很重要且常用的命令,除了下面的常用命令外还有很多的其他操作,比如运行时设置环境变量、设置数据卷、设置网络等等。后续可能会单独出一篇docker run进阶的博客和大家一起分享。
docker run -d --name test_nginx -p 8080:80 nginx:后台运行nginx容器,设置nginx容器名为“test_nginx” 并将容器内的nginx80端口映射到外部(宿主机)的8080端口
命令解析:
-d : 让容器在后台运行。
--name:为容器设置一个容器名称,用于后续的容器操作,比如删除容器时,直接指定容器名称即可。
-p:做内部和外部的端口映射,可以将容器内的端口映射到外部(宿主机),让外部进行访问容器。8080:80 就是将nginx内部的80端口映射到外部(宿主机)的8080端口。后续访问通过8080访问即可。
nginx:镜像的命令,表示要启动那个镜像,此次写入nginx表示要启动nginx镜像。镜像名称通过docker images可以查看镜像名称和标签。
列头解析:
CONTAINER ID:容器ID
IMAGE:镜像名称
COMMAND:容器启动时运行的命令。docker ps时字段有些内容不全,下面会介绍如何让字段输出完整的内容。
CREATED:启动容器的时间,2 minutes ago:表示启动容器的时间为2分钟之前。
STATUS:容器运行的状态,UP:表示启动;Exited:表示退出
PORTS:端口映射。容器内部端口与宿主机端口之间的映射关系。
NAMES:为容器指定的容器名称。
测试nginx访问:启动完nginx后,可以在宿主机进行nginx访问测试。
访问地址:IP:8080
注意:如果是云服务器,它是分私网和公网的地址,linux系统访问的话一定要用公网地址+端口才可以访问。
暂停容器 docker stop <容器名 or 容器ID>
如果后续不需要这个容器后,我们也可以停止容器
docker stop test_nginx:停止容器名为test_nginx容器
docker stop 容器ID:停止容器ID为XXXXX容器
启动容器 docker start <容器名 or 容器ID>
后续想要再次启动之前停止的容器,可以先使用docker ps -a 查看所有容器,找到停止的容器后,执行启动容器操作。
docker start test_nginx:启动容器名为test_nginx容器
docker start 容器ID:启动容器ID为XXXXX容器
常见问题:
1、复制运行容器的代码,出现XXX 报错:Unable to find image '8080:80' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded
解决方法:手动输入命令,可能直接复制的话,字符编码不对,导致识别字符出错。
2、docker ps时显示的内容不全,看不到里面的具体信息怎么办?
docker ps --no-trunc:表示查看运行时的容器,并且让字段所有的内容都显示出来