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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 【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


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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
219 93
|
1天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
47 14
|
2月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
199 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
151 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
2月前
|
搜索推荐 安全 数据安全/隐私保护
7 个最能提高生产力的 Docker 容器
7 个最能提高生产力的 Docker 容器
175 35
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
59 17
|
2月前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
95 5
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
1月前
|
运维 Java 虚拟化
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
113 12
|
2月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
166 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
1月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
155 11