上一篇,介绍了Docker的镜像操作,这一篇,讲一讲Docker的容器操作。所有命令,均通过命令提示符(或终端)完成,并且需要启动Docker Desktop(可设置为开机自启动,但很占系统资源)。
一、创建并运行容器
命令格式:docker run [options] 镜像名称[:tag]或docker run [options] 镜像ID,以Nginx为例,指定运行端口为8888。
# 等效,三选一
docker run -d -p 8888:80 --name nginx nginx:latest
docker run -d -p 8888:80 --name nginx nginx
docker run -d -p 8888:80 --name nginx b
options参数说明:
- -d:指定容器在后台运行
- -p 8888:80:端口映射,将宿主机的8888端口映射到容器的80端口
- --name nginx:指定容器名称为nginx
- nginx:latest:指定镜像,版本号不填时则默认为latest,也可以用镜像ID代替
此时,已成功创建并运行Nginx容器,通过宿主机IP和8888端口,即可访问容器中的Nginx。
二、查看容器
1、查看运行中的容器
命令格式:docker ps。
2、查看所有容器
命令格式:docker ps -a。
3、查看容器资源使用情况
命令格式:docker stats [容器名称]或docker stats [容器ID]。
# 查看全部容器
docker stats
# 查看Nginx容器
docker stats nginx
docker stats 8
4、查看容器日志
命令格式:docker logs [options] 容器名称或docker logs [options] 容器ID,容器ID可以只填写前几位,能确定唯一容器即可。
options参数说明:
- -f:显示实时日志
- --since 2022-08-08:显示2022年08月08日以来的日志
- -t:显示日志时间戳
- --tail 10:显示最新10条日志
举例:
# 查看带时间戳的最新15条日志,并实时显示当前日志
docker logs -f -t --tail 15 nginx
# 查看2022年08月08日以来最新10条日志
docker logs --since 2022-08-08 --tail 10 nginx
三、停止容器
1、停止一个
命令格式:docker stop 容器名称或docker stop 容器ID。
2、停止多个
一次可以停止运行多个容器,容器之间用空格隔开。再创建并运行两个Nginx容器,指定不同端口。
docker run -d -p 9000:80 --name nginx1 b
docker run -d -p 9001:80 --name nginx2 b
docker stop nginx1 nginx2
创建并运行容器命令,每执行一次,都会创建一个新的容器。针对停止状态的容器,要想再次运行,应该使用启动容器命令。
四、启动容器
命令格式:docker start 容器名称或docker start 容器ID,可同时启动多个容器,容器之间用空格隔开。
# 等效,二选一
docker start 2 9 8
docker start nginx nginx1 nginx2
五、重启容器
命令格式:dokcer restart 容器名称或docker restart 容器ID,可同时重启多个容器,容器之间用空格隔开。
docker restart nginx nginx1 nginx2
六、删除容器
1、删除容器
命令格式:docker rm 容器名称或docker rm 容器ID,可同时删除多个容器,容器之间用空格隔开。
2、删除失败
删除Nginx容器,就没那么顺利了。
运行中的容器不可以被删除,如需删除,应停止容器。