【Docker】6. 常用命令 — 容器命令

简介: 【Docker】6. 常用命令 — 容器命令

先pull一个镜像用来学习,docker pull centos


1268169-20210516201138352-55828096.png


一、常用基本容器命令


1. docker run运行容器


docker run [可选参数] image


可选参数


--name="Name"  容器名称,用以区分
-d             后台方式运行
-it            使用交互方式运行
-p             指定容器的端口
      -p 主机端口:容器端口    实现端口映射,比如 8080:8080
-P             随机指定端口


现在来启动centos镜像,启动并进入容器,docker run -it centos /bin/bash

进入容器后,可以查看ls,可以看出容器里的文件结构就是一个linux系统,只不过比较基础


1268169-20210516202622637-1027980496.png


现在退出容器exit,再看下外面的linux结构,注意内外这2个linux,没任何关系。


1268169-20210516202843046-771922594.png


2. docker ps 查看容器


1-查看正在运行中的容器列表。


docker ps


因为刚才退出了容器,所以没有正在运行的容器。


1268169-20210516203050364-1038099410.png


2-查看运行的容器(包括曾运行过的)-a


docker ps -a


1268169-20210516203208128-956665758.png


3-查看最近创建的容器,带上数量-n


docker ps -a -n=1


n=数量,这样就只返回一个结果。


1268169-20210516203554376-1400446830.png


4-只查看容器的编号-q


docker ps -aq


这里-aq相当于 -a -q


1268169-20210516203824349-1146877451.png


3. 退出容器


在上面已经试过了用exit来退出容器,退出了容器也就停止了。


若想退出,但是容器不停止,用这3个键一起。


ctrl + P + Q


4. 删除容器


通过容器id进行删除,但是不能删除正在运行中的容器。只能rm -f强制删除。


docker rm 容器id


删除全部容器。


docker rm -f $(docker ps -aq)


5. 启动和停止容器


docker start 容器id      # 启动容器
docker restart 容器id    # 重启容器
docker stop 容器id       # 停止当前正在运行的容器
docker kill 容器id       # 强制停止当前容器


二、其他命令(进阶)


1. 后台启动容器


docker run -d 镜像名称


1268169-20210516224520948-2016496058.png


注意,启动之后用ps查看,发现并没有在运行。


这是因为,docker容器使用后台运行的话,就必须要有一个前台的进程。说白了,就是得前台有一个东西咋使用这个后台运行的容器,否则docker容器就会

自动停止。


2. 查看日志


docker logs -tf --tail 10 容器id    #表示查看10条日志


不过目前这个centos里是没有日志的。可以现在写一个shell脚本,来做点事情,重新启动一个容器再试试。


docker run -d centos /bin/sh -c "while true;do echo pingguo;sleep 1;done"


1268169-20210516230142830-1275398232.png


此时再查看日志,可以看到日志输出了。


1268169-20210516230349313-1311140267.png


不过因为脚本写了while循环,每秒还在输出,所以日志会一直更新。


3. 查看容器内的进程


docker top 容器id


查看刚才运行的那个容器进程docker top 04912b1559a2


1268169-20210516230745238-1420022445.png


  • UID:用户id
  • PID:父进程id
  • PPID:进程id


4. 查看容器的元数据


docker inspect 容器id


里面内容非常详细,后面再详细介绍。


1268169-20210516231459473-1256187203.png


5. 进入当前正在运行的容器


这个命令很常用,容器通常都是后台运行,需要进入容器,修改一些配置。

方式1:


docker exec -it 容器id bashshell


进入刚才运行的centos里,docker exec -it 04912b1559a2 /bin/bash


1268169-20210516231934977-786261390.png


方式2:


docker attach 容器id


1268169-20210516232303107-539721296.png


进去后发现一直有打印输出,这也是2种方式的区别:


  • docker exec:进入容器后,开启一个新的终端,这种最常用。
  • docker attach:进行容器正在执行的终端,不会启动新的进程。


6. copy容器内的文件到主机


docker cp 容器id:容器内路径  目标主机路径


测试一下,我在容器内的/home下创建一个pingguo.txt文件。把它拷贝到外面的/home目录下。


1268169-20210516233430514-185517303.png


注意,这里的拷贝是手动执行的,后续使用到卷的技术,可以实现容器与外部数据的自动同步。

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
6月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
542 124
|
7月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
655 115
|
7月前
|
缓存 前端开发 Docker
Docker Layer Caching:加速你的容器构建
Docker Layer Caching:加速你的容器构建
|
6月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
705 51
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
721 6
|
6月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
606 6