🎁平平无奇的 Docker 命令(日常流)
Docker search
docker search
命令用于在 Docker Hub 上搜索镜像,语法如下:
docker search [OPTIONS] TERM
常用的选项包括:
--filter, -f
: 根据条件过滤镜像,例如--filter "stars=3"
可以只显示星级为 3 的镜像。--format
: 指定输出格式,例如--format "table {{.Name}}\t{{.Description}}"
可以将输出格式化为表格。
例如,要搜索名为 nginx
的镜像,可以使用以下命令:
docker search nginx
搜索结果将以表格形式显示,包括镜像名称、描述、星级、官方镜像标志等信息。
另外,若要搜索本地镜像而非 Docker Hub 上的镜像,则需要在搜索命令前加上 docker image
前缀,例如:
docker image search ubuntu
Docker pull
docker pull命令用于从Docker Hub或其他Docker镜像仓库拉取一个镜像到本地,语法为:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
其中,OPTIONS为docker pull命令的可选参数,可用参数列表详见docker官方文档。NAME表示需要拉取的镜像的名称,TAG为镜像的标签(版本),DIGEST为镜像的哈希值。
例如,要拉取官方的Ubuntu操作系统镜像,可以使用以下命令:
docker pull ubuntu
如果需要指定Ubuntu操作系统的版本为18.04,可以使用以下命令:
docker pull ubuntu:18.04
执行该命令后,Docker将从Docker Hub上下载并保存Ubuntu 18.04操作系统的镜像到本地。
Docker run
docker run
命令用来启动一个新的容器,它的语法格式如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
其中,OPTIONS
是可选的容器配置项,IMAGE
是要启动的容器镜像名称或者 ID,COMMAND
是容器启动后要执行的命令,ARG
表示传递给命令的参数。
下面是一些常见的 docker run
命令的用法示例:
以交互式方式启动容器:
docker run -it ubuntu /bin/bash
在这个命令中,
-it
表示以交互式和伪终端的方式运行容器,ubuntu
是要启动的容器镜像,/bin/bash
是容器启动后要执行的命令。指定容器名称:
docker run --name my_container ubuntu
在这个命令中,
--name
指定了容器的名称为my_container
。挂载主机目录到容器内部:
docker run --name my_container -v /host/path:/container/path ubuntu
在这个命令中,
-v
参数用来将主机上的/host/path
目录挂载到容器内部的/container/path
目录中。暴露容器端口:
docker run --name my_container -p 80:80 nginx
在这个命令中,
-p
参数用来将容器内部的 80 端口映射到主机的 80 端口上。设置容器启动时的环境变量:
docker run --name my_container -e MYSQL_ROOT_PASSWORD=123456 mysql
在这个命令中,
-e
参数用来设置容器的环境变量,这里设置了 MySQL 的 root 用户的密码为123456
。
Docker exec
docker exec
命令用于在正在运行的 Docker 容器中运行指定的命令。
使用 docker exec
命令的格式如下:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
其中,OPTIONS
可以省略,常用的选项如下:
-i
:保持标准输入打开,使得可以与容器交互。-t
:分配一个伪终端,使得可以与容器交互。
CONTAINER
是要操作的容器的名称或 ID。
COMMAND
是要在容器内运行的命令。
ARG...
是命令的参数。
示例:
在名为
mycontainer
的容器中执行命令/bin/bash
并分配一个伪终端:docker exec -it mycontainer /bin/bash
在名为
mycontainer
的容器中执行命令ls -l
:docker exec mycontainer ls -l
注意:要使用 docker exec
命令,容器必须已经启动,并且必须有一个运行中的进程。
Docker logs
docker logs
命令用于查看 Docker 容器的日志信息。它的基本用法如下:
docker logs [OPTIONS] CONTAINER
其中,OPTIONS
可以是以下选项:
-f
:跟踪容器日志输出,类似于tail -f
命令。--tail
:仅显示最近的几行日志。例如,--tail 10
仅显示最近的 10 行日志。--since
:仅显示指定时间之后产生的日志。例如,--since 2020-01-01
仅显示 2020 年 1 月 1 日之后产生的日志。--until
:仅显示指定时间之前产生的日志。例如,--until 2020-01-01
仅显示 2020 年 1 月 1 日之前产生的日志。
CONTAINER
是容器的名称或 ID。例如,要查看名为 webapp
的容器的日志,可以使用以下命令:
docker logs webapp
如果要跟踪日志输出,可以使用 -f
参数:
docker logs -f webapp
如果仅想查看最近的 10 行日志,可以使用 --tail
参数:
docker logs --tail 10 webapp
如果想查看 2020 年 1 月 1 日之后的日志,可以使用 --since
参数:
docker logs --since 2020-01-01 webapp
如果想查看 2020 年 1 月 1 日之前的日志,可以使用 --until
参数:
docker logs --until 2020-01-01 webapp
Docker cp
docker cp命令用于在docker容器和本地文件系统之间复制文件或目录。其基本语法如下:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
其中,OPTIONS指定一些选项,CONTAINER指定容器的名称或ID,SRC_PATH指定容器内的源路径,DEST_PATH指定本地或容器内的目标路径。
例如,将容器内的文件复制到本地:
docker cp mycontainer:/app/file.txt /home/user/
将本地文件复制到容器内:
docker cp /home/user/file.txt mycontainer:/app/
常用的选项包括:
- -a:将所有文件属性(包括权限、所有者和时间戳)一并复制
- -L:针对符号链接,将链接源文件复制到目标文件中
- --follow-link:跟随符号链接进行复制
- --help:获取帮助信息
注意,如果容器正在运行,则复制的文件可能会被锁定,需要先停止容器再执行复制命令。
Docker network
Docker网络是Docker中一个重要的概念之一,它允许Docker容器之间相互通信,也能与外部网络进行交互。下面是Docker网络的使用步骤:
- 创建Docker网络
可以使用以下命令来创建Docker网络:
$ docker network create my-network
这将创建名为my-network的新Docker网络。
- 运行Docker容器并将其连接到网络
可以使用以下命令来运行Docker容器并将其连接到网络:
$ docker run --name my-container --network my-network -d my-image
这将创建一个名为my-container的新容器,并将其连接到my-network网络中。
- 连接现有的Docker容器到网络
可以使用以下命令将现有的Docker容器连接到网络:
$ docker network connect my-network my-container
其中my-network是要连接到的网络名称,my-container是要连接到网络的容器的名称。
- 列出网络
可以使用以下命令列出所有可用的Docker网络:
$ docker network ls
- 删除网络
可以使用以下命令删除Docker网络:
$ docker network rm my-network
这将删除名为my-network的Docker网络。
Docker volume
Docker volume是用来存储数据的一种机制,可以在容器和主机之间共享数据。下面是Docker volume的使用方法:
- 创建volume
可以通过命令行或者Dockerfile来创建volume。比如使用命令docker volume create my_volume
来创建一个名为my_volume的volume。
- 挂载volume到容器
使用docker run
命令时,加上-v
参数可以将volume挂载到容器中。例如:
docker run -v my_volume:/app/data my_image
- 查看volume
可以使用docker volume ls
命令来查看所有已经创建的volume。如果想查看某个volume的详细信息,可以使用docker volume inspect
命令。例如:
docker volume inspect my_volume
- 删除volume
要删除volume,可以使用docker volume rm
命令,例如:
docker volume rm my_volume
需要注意的是,如果某个volume正在被某个容器使用,那么不能直接删除它,需要先将其从该容器中移除。
Docker stop
docker stop
命令用于停止正在运行的容器。它的语法如下:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
其中,OPTIONS
可以是:
-t, --time
:指定停止容器前的等待时间(单位为秒)。--time-format
:指定等待时间的格式,可以是float
(小数),ns
(纳秒),µs
(微秒),ms
(毫秒),s
(秒),m
(分)或h
(小时)。--help
:显示帮助信息。
CONTAINER
是要停止的容器的名称或 ID。可以同时停止多个容器,只需在命令中列出它们的名称或 ID 即可。
示例:
停止名为 my-container
的容器:
docker stop my-container
停止 ID 为 1234567890ab
和 abcdef123456
的两个容器,并等待 10 秒:
docker stop -t 10 1234567890ab abcdef123456
Docker rm
docker rm命令用于删除一个或多个已有的容器。具体用法为:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
常用的选项包括:
-f
: 强制删除一个运行中的容器。-v
: 删除容器时,同时删除容器挂载卷的数据卷。
例如,删除名为mycontainer的容器:
docker rm mycontainer
删除 ID 为1234和5678的容器:
docker rm 1234 5678
删除所有已停止的容器及其数据卷:
docker rm -v $(docker ps -a -q -f status=exited)
Docker rmi
docker rmi
命令用于删除一个或多个本地镜像。其语法为:
docker rmi [OPTIONS] IMAGE [IMAGE...]
其中,OPTIONS
为可选项,常用的选项有:
-f/--force
:强制删除镜像,即使有容器正在使用该镜像。-a/--all
:删除所有本地镜像,包括被标记为<none>
的镜像。
IMAGE
为需要删除的镜像名称或镜像 ID。可以同时删除多个镜像,多个镜像名称或镜像 ID 之间用空格分隔。
示例:
- 删除一个镜像:
docker rmi redis
- 强制删除一个镜像:
docker rmi -f redis
- 删除多个镜像:
docker rmi redis nginx php
- 删除所有本地镜像:
docker rmi -a
Docker save
docker save
命令用于将 Docker 镜像保存为 tar 文件。它的语法为:
docker save [OPTIONS] IMAGE [IMAGE...]
其中,OPTIONS 包括:
-o, --output
: 指定输出文件路径及名称。--help
: 显示帮助信息。
示例:
将镜像 nginx:latest
保存为 nginx.tar
文件:
docker save -o nginx.tar nginx:latest
注意:docker save
命令保存的是整个镜像,包括所有的历史层和元数据,因此保存的文件可能会很大。
更多内容请关注公众号
🎁平平无奇的 Docker 命令(日常流)的更多相关文章
- [UWP]为番茄钟应用设计一个平平无奇的状态按钮
1. 为什么需要设计一个状态按钮 OnePomodoro应用里有个按钮用来控制计时器的启动/停止,本来这应该是一个包含"已启动"和"已停止"两种状态的按钮,但我 ...
- 蒲公英 · JELLY技术周刊 Vol 27: 平平无奇 React 17
蒲公英 · JELLY技术周刊 Vol.27 这个热闹的十月终于要走到尾声,React 17 历经 4 个 RC 版本之后,也于数天前正式发布了,而同在几天前发布的 CRA 4.0 也已经完成了 Re ...
- 平平无奇的项目「GitHub 热点速览 v.22.10」
不知道大家对高星项目什么印象?提到这个词第一个想到哪个项目呢?本周有几个项目看着普普通通,却完成了一周 2k+ star 的事迹.比如 SingleFile,它是个浏览器扩展,点击图标之后即可保存一个 ...
- 你可能不知道的 docker 命令的奇淫怪巧
你可能不知道的 docker 命令的奇淫怪巧 Intro 介绍并收录一些可能会用到的一些简单实用却很少有人用的 docker 命令 dangling images build 自己的 docker 镜 ...
- docker的ubuntu镜像无ifconfig和ping命令
docker的ubuntu镜像无ifconfig和ping命令 或者 ubuntu系统中无ifconfig 和 ping 解决方案: 执行以下鸣冷: apt-get update apt-get in ...
- docker命令和后台参数
Docker官方为了让用户快速了解Docker,提供了一个 交互式教程 ,旨在帮助用户掌握Docker命令行的使用方法. Docker 命令行 下面对Docker的命令清单进行简单的介绍,详细内容在后 ...
- Docker 命令行和后台參数
Docker官方为了让用户高速了解Docker,提供了一个交互式教程,旨在帮助用户掌握Docker命令行的用法. Docker 命令行 以下对Docker的命令清单进行简单的介绍,具体内容在兴许章节具 ...
- Docker 共有 13 个管理命令和 41 个通用命令,以下是常用 Docker 命令列表
开发人员一直在努力提高 Docker 的使用率和性能,命令也在不停变化.Docker 命令经常被弃用,或被替换为更新且更有效的命令,本文总结了近年来资深专家最常用的命令列表并给出部分使用方法. 目前, ...
- docker 命令汇集
1,查看容器 docker ps [-a] #-a表示全全部否者仅显示运行的 2,登录容器 docker exec -it [containerId] /bin/bashdocker exec -it ...
- docker命令脚本
第一版: 1 #!/bin/bash #this is input docker continer shell! #this is -- # v1.1.2 read -p "请输入要执行do ...
随机推荐
- Idea报错:无法创建java虚拟机
报错如下: 我怀疑是在配置algo4环境时,将系统变量改变了 于是我又重新配置了一下环境变量 然后运行 cmd 执行 java -version 还是报错 <JAVA_HOME>/lib/ ...
- 多光源渲染方案 - Light Culling
目录 Tile-based Light Culling Culling 流程 Injection Pass Compact Pass 2.5D Culling Cluster-based Light ...
- Mybatis(配置解析解读(核心))
核心配置文件 mybaits-confing.xml *properties(属性) *settring(设置) *typeAliases(类型别名) *typeHandlers(类型处理器) *ob ...
- MAUI Blazor Android 输入框软键盘遮挡问题2.0
前言 关于MAUI Blazor Android 输入框软键盘遮挡问题,之前的文章已经有了答案,MAUI Blazor Android 输入框软键盘遮挡问题 但是这个方案一直存在一点小的瑕疵 在小窗模 ...
- Elementary OS old version download 旧版本下载
Elementary OS 号称是最漂亮的Linux发行版,没有之一.确实,他的整体风格看起来就是特别舒服,说不出哪里特别好,但也挑不出什么毛病.相比之下,其他Linux的界面总感觉不太和谐.比如特别 ...
- 2023牛客暑期多校训练营2 DEFGHIK
比赛链接 D 题解 知识点:贪心. 首先,因为第一个人喜欢吃的可能会被后面的人选中,因此直接选最喜欢吃的可能会浪费机会.所以,我们考虑先看后面的人怎么选,就是倒着贪心,我们考虑证明. 假设当前剩下的菜 ...
- FAQ: ansible playbook 中 tasks 与 handlers 的区别
ansible自动化运维有两种执行方式,一种是对远程主机批量执行命令,使用ansible命令,直接调用模块加参数执行:另一种是对远程主机批量执行脚本,也是调用模块,但是要把参数按照yanl语法写到一个 ...
- Spring Boot Starter 剖析与实践
引言 对于 Java 开发人员来说,Spring 框架几乎是必不可少的.它是一个广泛用于开发企业应用程序的开源轻量级框架.近几年,Spring Boot 在传统 Spring 框架的基础上应运而生,不 ...
- asp.net core之异常处理
在开发过程中,处理错误是一个重要的方面.ASP.NET Core提供了多种方式来处理错误,以确保应用程序的稳定性和可靠性. TryCatch TryCatch是最常见也是最基础的一种异常处理方式,只需 ...
- 华为ensp配置静态路由,三路由,三pc
华为ensp配置静态路由 目的:使pc1,pc2,pc3能相互ping通 1,tuop图的搭建 1,如图所示:先搭建好设备的通讯关系,在标记好每台设备对应的,ip地址和网关. 2,pc的网关,与ip地 ...