3. dcoker容器的命令

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 常用命令集合

常用命令集合


docker ps --no-trunc                             查看容器
docker stop/start 容器ID                          停止容器
docker start 容器别名                              通过容器别名启动容器
docker inspect                                     查看容器的基本信息
docker logs 容器别名                               查看容器日志
docker stats 容器别名                             查看容器所占用的系统资源
docker exec 容器名 容器内执行的命令                 容器执行命令
docker exec -it 容器名 /bin/bash                  登入容器bash
docker port 容器名称                  查询容器端口和主机端口的映射关系
特殊参数
--restart=always                                      容器的自动启动
-h www.baidu.com                                   设置容器的主机名
--dns xx.xx.xx.xx                                     设置容器使用的DNS服务器
--dns-search                                            DNS搜索设置
--add-host hostname:IP                            注入hostname IP解析(也就是说, 在hosts文件中增加IP解析)
--rm                                                        服务停止时自动删除


一.通用命令


docker --help 命令


用法:    docker [OPTIONS] COMMAND


二. 镜像的基本命令


1. 列出本机上所有的镜像


docker images
-a : 列出本地所有的镜像(含中间镜像层) 表示的是all的含义
-q : 只显示镜像ID
--digests: 显示镜像的摘要信息
--no-trunc:显示完整的镜像信息


docker images -q : 查询镜像的ID


微信图片_20220513134414.png


docker images -qa: 查询所有镜像的id, 可以批量删除时使用


微信图片_20220513134440.png


docker images --no-trunc


微信图片_20220513134507.png


2. 搜索镜像


docker search 镜像名
  --filter=stars=3: 列出点赞数不小于指定数值的镜像
--no-trunc: 显示完整的镜像描述
--automated: 只列出automated build类型的镜像


微信图片_20220513134531.png


微信图片_20220513134534.png


3. 拉取镜像


docker pull 镜像名称:tag


4. 删除镜像


docker rmi 镜像名称:tag


删除正在运行的镜像


docker rmi -f hello-world


删除全部镜像


docker rmi -f ${docker images -qa}
docker images -qa 是查询当前全部镜像的id, 然后删除这些镜像


三. 容器的基本命令


1. 运行容器


docker run -p 8080:80 -d daocloud.io/nginx


docker run是启动容器. 启动的时候, 现在本地查找镜像, 如果本地没有, 则去网络下载

-p 8080:80 是把虚拟机中启动的nginx的端口号80 映射到本机的8080


-d: 表示以后台进程运行.


-P: 随机端口映射


-i: 以交互模式运行容器, 通常与-t同时使用


-t: 为容器重新分配一个伪输入终端, 通常与-i同时使用


daocloud.io/nginx: 镜像名称

 

2. 查询正在运行的容器


docker ps


-a: 列出历史运行过的所有容器 + 当前正在运行的容器


-l: 显示最近创建的容器


-n: 显示最近n个创建的容器


-q: 静默模式, 只显示容器编号


--no-trunc: 不截断输出


3. 在本机和容器之间拷贝文件


如: 拷贝index.html替换nginx的默认index.html页面


docker cp ./index.html 1a2aa74fb4e5://usr/share/nginx/html


微信图片_20220513134812.png


4. 停止docker容器


docker stop 1a2aa74fb4e5


docker stop 容器号


我们将nginx停止. 然后在重启


浏览器访问localhost:8080,发现又回到nginx的启动页了. 我们不是修改为自己的页面了, 怎么回事呢?

微信图片_20220513134847.png


因为对docker内的文件进行的修改, 默认是不会保存的, 当停止服务,再重启以后, 就恢复为默认的了


如何对可以持久对docker的修改生效呢? 使用docker commit

 

5. 保存改动为新的image


docker commit -m 'fun' 2a2f3a5c960f fun-nginx


这段代码的含义是, 提交对docker容器所做的修改, 并起了一个名字叫fun. 容器的名字叫fun-nginx.


微信图片_20220513134922.png


执行完这段代码以后, 会重新生成一个新的镜像.

 

我们来看看现在有几个nginx的镜像


微信图片_20220513134937.png


现在有两个镜像, 其中fun-nginx是我们刚建的. 我们可以删除一个.

 

6. 退出容器


exit: 容器停止退出
ctrl+P+Q: 容器不停止退出


7.删除容器


docker rm 容器id1 容器id2 ....


使用docker ps,可以查看已经启动的容器.


使用docker ps -a, 可以查看全部容器, 包括未启动的容器


微信图片_20220513135021.png


我们看到有这么多的镜像


有些镜像是不需要的, 我们可以删除多余的elasticsearch容器


微信图片_20220513135042.png


四. 重要


1. 启动守护式容器


docker run -d 容器名
在后台进程中启动


使用守护进程的方式启动容器, 会有一个问题: 使用docker ps -a, 发现容器已经退出

重点:docker容器后台运行, 就必须有一个前台进程, 容器运行的命令如果不是那些一直挂起的命令(比如top, tail), 就会自动退出. 这个是docker的机制, 比如web容器, 以nginx为例, 正常情况下,我们配置启动服务只需要启动相应的service即可, 例如: service nginx start. 但是, 这样做, nginx为后台模式运行, 就导致docker前台没有运行的应用. 这样的容器后台启动后, 会立即自杀, 因为他觉得没哟碃可以做. 所以, 最佳的的解决方案是, 将你要运行的程序以前台进程的形式运行


docker run -d nginx /bin/sh -c "while true; do echo hello zzyy; sleep 2; done"


在控制台持续输出hello zzyy, 2秒钟打印一次


微信图片_20220513135127.png


2. 查看容器日志


docker logs -f -t --tail 数字 容器ID
-t: 是加入时间戳
-f: 跟随最新的日志打印
--tail 数字: 显示最多多少条


微信图片_20220513135225.png


3. 查看容器内运行的进程


docker top 容器id


微信图片_20220513135250.png


4. 查看容器内部的细节


docker inspect 容器ID


docker容器内部是洋葱环,一层套一层. inspect就是查看容器内部的细节的


微信图片_20220513135321.png


5. 进入正在运行的容器并以命令行交互


进入正在运行的容器: docker exec -it 容器ID bashShell
重新进入: docker attach 容器ID
上述二者的区别:


举例: 现在运行一个容器


docker run -d 


微信图片_20220513135359.png


进入到了容器里面, 想要退出的话ctr + c


在想要进入到这个容器, 进入的是容器的根目录


docker attach 容器ID


使用exec执行容器中的查询内容, 并返回执行结果


docker exec -t  容器ID ls -l /tmp/ 


6. 从容器内拷贝文件到主机上


docker cp 容器ID:容器内路径  目标主机地址
相关文章
|
26天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
189 77
|
23天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
87 24
|
2月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
1163 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
25天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
112 6
|
4月前
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
210 56
|
3月前
|
存储 关系型数据库 MySQL
|
3月前
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令
102 1
|
4月前
|
应用服务中间件 Shell nginx
Docker容器操作基础命令
关于Docker容器操作基础命令的教程,涵盖了从启动、查看、删除容器到端口映射和容器信息获取的一系列常用命令及其使用方法。
131 14
|
5月前
|
JSON JavaScript 开发者
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
【8月更文挑战第7天】Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
|
3月前
|
Linux 应用服务中间件 Shell
docker学习--docker容器镜像常用命令大全(简)
本文档详细介绍了Docker中的镜像命令与容器管理命令。镜像命令部分涵盖了镜像搜索、下载、上传等操作;容器管理命令则包括了容器的创建、启动、停止、删除及日志查看等功能。通过具体示例,帮助用户更好地理解和使用Docker相关命令。
215 0