docker常用基础命令

文章目录

  • 1、Docker 环境信息命令
    • 1.1、docker info
    • 1.2、docker version
  • 2、系统日志信息常用命令
    • 2.1、docker events
    • 2.2、docker logs
    • 2.3、docker history
  • 3、容器的生命周期管理命令
    • 3.1、docker create
    • 3.2、docker run
  • 总结

1、Docker 环境信息命令

1.1、docker info

显示 Docker 系统信息,包括镜像、容器数、仓库镜像、架构等。

docker info [OPTIONS]

示例:

king@king-server:~$ docker info
Client: Docker Engine - Community
 Version:    24.0.7
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.2
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.21.0
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 6
  Running: 1
  Paused: 0
  Stopped: 5
 Images: 3
 Server Version: 24.0.7
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3dd1e886e55dd695541fdcd67420c2888645a495
 runc version: v1.1.10-0-g18a0cb0
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
 Kernel Version: 5.4.0-169-generic
 Operating System: Ubuntu 20.04.5 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 3.797GiB
 Name: king-server
 ID: 2cf468ba-1204-4a1a-bebf-e859aaab7ca2
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

1.2、docker version

显示 Docker 版本信息。

docker version [OPTIONS]

示例:

king@king-server:~$ docker version
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:08:01 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:08:01 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.26
  GitCommit:        3dd1e886e55dd695541fdcd67420c2888645a495
 runc:
  Version:          1.1.10
  GitCommit:        v1.1.10-0-g18a0cb0
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

2、系统日志信息常用命令

2.1、docker events

从服务器获取实时事件(监听docker事件)。

docker events [OPTIONS]
OPTIONS说明:
-f :根据条件过滤事件;
--since :从指定的时间戳后显示所有事件;
--until :流水时间显示到指定的时间为止;

示例:

# 第一个终端执行
docker events
# 第二个终端操作容器,比如docker run -d nginx
docker start/stop/restart
# 查看第一个终端输出
# 启动容器事件
2022-12-08T14:18:01.476501682Z container create 36f6736b9c6289da6db95898507796a378cd03e29b51166039c5a5a593377fb0 (image=nginx, maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>, name=stupefied_newton)
2022-12-08T14:18:01.578704583Z network connect fdb00a147400b60e2c0706129ed2b143a13c02c5675b5fc2871c5d4ed42aa478 (container=36f6736b9c6289da6db95898507796a378cd03e29b51166039c5a5a593377fb0, name=bridge, type=bridge)
2022-12-08T14:18:03.310080179Z container start 36f6736b9c6289da6db95898507796a378cd03e29b51166039c5a5a593377fb0 (image=nginx, maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>, name=stupefied_newton)

# stop事件
2022-12-08T14:20:19.252053300Z container kill 36f6736b9c6289da6db95898507796a378cd03e29b51166039c5a5a593377fb0 (image=nginx, maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>, name=stupefied_newton, signal=3)
2022-12-08T14:20:19.365758840Z container die 36f6736b9c6289da6db95898507796a378cd03e29b51166039c5a5a593377fb0 (exitCode=0, image=nginx, maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>, name=stupefied_newton)
2022-12-08T14:20:19.468679557Z network disconnect fdb00a147400b60e2c0706129ed2b143a13c02c5675b5fc2871c5d4ed42aa478 (container=36f6736b9c6289da6db95898507796a378cd03e29b51166039c5a5a593377fb0, name=bridge, type=bridge)
2022-12-08T14:20:19.535147938Z container stop 36f6736b9c6289da6db95898507796a378cd03e29b51166039c5a5a593377fb0 (image=nginx, maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>, name=stupefied_newton)

2.2、docker logs

docker logs,通常用于排查容器里面的问题。比如容器里部署的程序执行不起来,由于docker做了隔离,就需要使用docker logs来排除问题。

docker logs [OPTIONS] CONTAINER
OPTIONS说明:
-f : 跟踪日志输出
--since :显示某个开始时间的所有日志
-t : 显示时间戳
--tail :仅列出最新N条容器日志
-n :显示最后多少行的日志

示例:

king@king-server:~$ docker logs -f affectionate_pare
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2024/01/21 11:12:09 [notice] 1#1: using the "epoll" event method
2024/01/21 11:12:09 [notice] 1#1: nginx/1.25.3
2024/01/21 11:12:09 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14) 
2024/01/21 11:12:09 [notice] 1#1: OS: Linux 5.4.0-169-generic
2024/01/21 11:12:09 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/01/21 11:12:09 [notice] 1#1: start worker processes
2024/01/21 11:12:09 [notice] 1#1: start worker process 29
2024/01/21 11:12:09 [notice] 1#1: start worker process 30
2024/01/21 11:12:09 [notice] 1#1: start worker process 31
2024/01/21 11:12:09 [notice] 1#1: start worker process 32
king@king-server:~$ docker logs -n 10 affectionate_pare
2024/01/21 11:12:09 [notice] 1#1: using the "epoll" event method
2024/01/21 11:12:09 [notice] 1#1: nginx/1.25.3
2024/01/21 11:12:09 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14) 
2024/01/21 11:12:09 [notice] 1#1: OS: Linux 5.4.0-169-generic
2024/01/21 11:12:09 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/01/21 11:12:09 [notice] 1#1: start worker processes
2024/01/21 11:12:09 [notice] 1#1: start worker process 29
2024/01/21 11:12:09 [notice] 1#1: start worker process 30
2024/01/21 11:12:09 [notice] 1#1: start worker process 31
2024/01/21 11:12:09 [notice] 1#1: start worker process 32

2.3、docker history

查看指定镜像的创建历史。

docker history [OPTIONS] IMAGE
OPTIONS说明:
-H :以可读的格式打印镜像大小和日期,默认为true;
--no-trunc :显示完整的提交记录;
-q :仅列出提交记录ID

示例:

king@king-server:~$ docker history affectionate_pare
Error response from daemon: No such image: affectionate_pare:latest
king@king-server:~$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
registry      2         909c3ff012b7   7 weeks ago    25.4MB
nginx         latest    d453dd892d93   2 months ago   187MB
hello-world   latest    d2c94e258dcb   8 months ago   13.3kB
king@king-server:~$ docker history nginx
IMAGE          CREATED        CREATED BY                                      SIZE      COMMENT
d453dd892d93   2 months ago   CMD ["nginx" "-g" "daemon off;"]                0B        buildkit.dockerfile.v0
<missing>      2 months ago   STOPSIGNAL SIGQUIT                              0B        buildkit.dockerfile.v0
<missing>      2 months ago   EXPOSE map[80/tcp:{}]                           0B        buildkit.dockerfile.v0
<missing>      2 months ago   ENTRYPOINT ["/docker-entrypoint.sh"]            0B        buildkit.dockerfile.v0
<missing>      2 months ago   COPY 30-tune-worker-processes.sh /docker-ent…   4.62kB    buildkit.dockerfile.v0
<missing>      2 months ago   COPY 20-envsubst-on-templates.sh /docker-ent…   3.02kB    buildkit.dockerfile.v0
<missing>      2 months ago   COPY 15-local-resolvers.envsh /docker-entryp…   298B      buildkit.dockerfile.v0
<missing>      2 months ago   COPY 10-listen-on-ipv6-by-default.sh /docker…   2.12kB    buildkit.dockerfile.v0
<missing>      2 months ago   COPY docker-entrypoint.sh / # buildkit          1.62kB    buildkit.dockerfile.v0
<missing>      2 months ago   RUN /bin/sh -c set -x     && groupadd --syst…   112MB     buildkit.dockerfile.v0
<missing>      2 months ago   ENV PKG_RELEASE=1~bookworm                      0B        buildkit.dockerfile.v0
<missing>      2 months ago   ENV NJS_VERSION=0.8.2                           0B        buildkit.dockerfile.v0
<missing>      2 months ago   ENV NGINX_VERSION=1.25.3                        0B        buildkit.dockerfile.v0
<missing>      2 months ago   LABEL maintainer=NGINX Docker Maintainers <d…   0B        buildkit.dockerfile.v0
<missing>      2 months ago   /bin/sh -c #(nop)  CMD ["bash"]                 0B        
<missing>      2 months ago   /bin/sh -c #(nop) ADD file:ac3cd70031d35e46d…   74.8MB

3、容器的生命周期管理命令

3.1、docker create

创建一个新的容器但不启动它,语法同docker run。
示例:

docker create nginx

3.2、docker run

创建一个新的容器并运行一个命令。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用选项:

  • –add-host:容器中hosts文件添加 host:ip 映射记录。
docker run --rm -it --add-host db-static:86.75.30.9 ubuntu cat /etc/hosts
  • -a, --attach:附加到 STDIN, STDOUT 或 STDERR。
docker run --rm -a stdin -a stdout -i -t ubuntu /bin/bash
  • –cidfile:将容器id写入到指定文件。
docker run --rm --cidfile /tmp/idfile ubuntu
  • -d, --detach:后台运行容器并打印容器id。
  • –detach-keys:指定将容器切回后台的按键,默认:CTRL-p+CTRL-q。
  • –disable-content-trust:跳过镜像验证,默认为TRUE。
  • –domainname:设置容器网络服务域名。
  • –entrypoint:覆盖镜像默认程序入口。
docker run --rm -it --entrypoint /bin/bash nginx
  • -e, --env:设置环境变量。
  • –env-file:从文件中读取环境变量。
  • –expose:暴露一个或多个端口。
  • –group-add:为容器用户添加更多用户组。
docker run --rm --group-add audio --group-add nogroup --group-add 777 ubuntu id
  • -h, --hostname string:设置主机名。
  • –init 在容器内运行init,转发信号并捕获进程。
# ps 对比容器的元祖进程 
docker run --rm -it ubuntu bash 
docker run --rm -it --init ubuntu bash
  • -i, --interactive:保持标准输入设备处于打开状态。
  • -l, --label list:设置容器元数据labels。
  • –label-file list:从文件中读取以换行作为分隔符的label。
  • –link:添加一个其他容器的链接,及修改当容器的/etc/hosts文件。
  • –log-driver:容器日志驱动,none、local、json-file、syslog、journald、gelf、fluentd、awslogs、splunk、etwlogs、gcplogs、logentries。
  • –log-opt:日志驱动选项。
  • –mount:将文件系统挂载到容器,与 -v 类似。
# 挂载volume 
docker run -t -i --rm --mount type=volume,target=/data ubuntu bash 
# 创建目录 
mkdir /tmp/data 
# 修改目录所有权,仅当使用userns的情况下需要 
sudo chown 165536:root /tmp/data 
# bind 磁盘已存在目录 
docker run -t -i --rm --mount type=bind,src=/tmp/data,dst=/data ubuntu bash
  • –name:指定容器名称。
  • –privileged:授予容器超级权限。
  • -p, --publish:发布容器端口都主机端口。
  • -P, --publish-all:将所有暴露的端口发布到主机随机端口。
  • –pull:运行前拉取图像,(always|missing|never),默认 missing。
  • –pids-limit:限制容器中pid个数。
  • –read-only :将容器跟文件系统装载为只读。
  • –restart:当容器退出时的重启策略,默认为no。
  • –rm:当容器退出时,自动删除容器。
  • –sig-proxy:将接收到的信号代理到进程(默认为true)。
  • –stop-signal:停止容器的信号(默认为“SIGTERM”)。
  • –stop-timeout:容器停止超时时长,单位s。
  • –tmpfs:装载tmpfs目录。
docker run -dit --rm --tmpfs /run1:rw,noexec,nosuid,size=65536k ubuntu bash
  • -t, --tty:分配一个伪终端设备。
  • -u, --user: 用户名或用户ID (格式: <name|uid>[:<group|gid>])。
  • -v, --volume :绑定数据卷。
  • –volume-driver:容器的可选卷驱动程序。
  • –volumes-from:从指定的容器装载数据卷。
  • -w, --workdir:容器内的工作目录。

总结

docker run主要做三件事情:创建容器、连接网络、启动容器。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/338316.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

硬件-11-服务器的基础知识

参考服务器基础知识大科普 1 电视剧背景 服务器被誉为互联网之魂。 电视剧《创业年代》是一部有冯绍峰和袁姗姗等人联手主演的一部讲述我国第一批科技创业者创业故事的电视剧&#xff0c;可以说是他们铲下了建设中关村的第一捧土。 电视剧《创业年代》中的潮信公司并没有…

Ubuntu上安装部署Qt

首先需要下载对应的虚拟机软件和ubuntu镜像&#xff0c;虚拟机软件使用VMware或者Virtual Box都行&#xff0c;我用的是前者&#xff0c;这里是VMware的下载链接&#xff1a;下载 VMware Workstation Pro | CN。Ubuntu镜像推荐去清华的网站下载&#xff1a;Index of /ubuntu-re…

不管过程有多难,也想做好送给你

大家好&#xff0c;我是小悟 春节临近&#xff0c;很多品牌都各自定制了专属红包封面&#xff0c;相信也有小伙伴也抢到了一些品牌主分发的红包封面&#xff0c;微信也在各种入口比如通过搜索、摇一摇、看视频帮助用户“薅”红包封面。作为“代码撬动改变世界”的实践者&#x…

stm32h7内部flash与qspi flash异同与差异

内部flash.与qspi flash区别 在STM32H7微控制器中&#xff0c;QSPI闪存&#xff08;Quad SPI Flash&#xff09;和内部闪存之间存在一些具体的差异。以下是一些常见的差异点&#xff1a; 访问速度&#xff1a;内部闪存通常具有更快的访问速度&#xff0c;可以以更高的速率读取…

Webpack 基本使用 - 1

Webpack 是什么 webpack 的核心目的是打包&#xff0c;即把源代码一个一个的 js 文件&#xff0c;打包汇总为一个总文件 bundle.js。 基本配置包括mode指定打包模式&#xff0c;entry指定打包入口&#xff0c;output指定打包输出目录。 另外&#xff0c;由于 webpack默认只能打…

计量属性和会计报表

目录 历史成本计价基础的优点重置成本计价可变现净值计价现值公允价值会计报表 \quad \quad 会计要素的计量属性简单的来说就是用什么样的方法来进行计量。 \quad \quad 历史成本计价基础的优点 (比如用发票) 1、数据客观 2、随时可以查证 3、防止随意更改 4、核算手续简化 历…

Python学习从0到1 day7 Python判断语句

路远殊途&#xff0c;祝你得偿所愿 ——24.1.21 前言 进行逻辑判断&#xff0c;是生活中常见的行为&#xff0c;同样&#xff0c;在程序中&#xff0c;进行逻辑判断也是最为基础的功能 一、布尔类型和比较运算符 1.布尔类型 进行判断&#xff0c;有两个结果&#xff0c;True、…

C# 获取QQ会话聊天信息

目录 利用UIAutomation获取QQ会话聊天信息 效果 代码 目前遇到一个问题 其他解决办法 利用UIAutomation获取QQ会话聊天信息 效果 代码 AutomationElement window AutomationElement.FromHandle(get.WindowHwnd); AutomationElement QQMsgList window.FindFirst(Tr…

【leetcode】移除元素

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一.暴力求解法二.使用额外数组三.原地修改数组 点击查看题目 一.暴力求解法 若我们不考虑时间复杂度…

python进程间通信——命名管道(Named Pipe、FIFO)

文章目录 Python中的命名管道&#xff1a;深入理解进程间通信1. 命名管道简介2. 创建和删除命名管道3. 写入命名管道4. 读取命名管道5. 示例&#xff1a;进程间通信write_to_pipe.pyread_from_pipe.py测试运行 6. 注意事项和限制命名管道的半双工机制命名管道读写任意一方未打开…

防范水坑攻击:了解原理、类型与措施

水坑攻击是一种常见的网络攻击方式&#xff0c;它利用了人类在互联网上的行为习惯&#xff0c;诱导用户访问恶意网站或下载恶意软件&#xff0c;从而获取用户的个人信息或控制用户的计算机系统。本文将介绍水坑攻击的原理、类型和防范措施。 一、水坑攻击的原理 水坑攻击&…

Pytest 结合 Allure 生成测试报告

测试报告在项目中是至关重要的角色&#xff0c;一个好的测试报告&#xff1a; 可以体现测试人员的工作量&#xff1b; 开发人员可以从测试报告中了解缺陷的情况&#xff1b; 测试经理可以从测试报告中看到测试人员的执行情况及测试用例的覆盖率&#xff1b; 项目负责人可以通过…

2023年前前同事12个月薪水未发,来聊聊普通的开发人如何避开丛丛杀机的新一年

转眼又一年&#xff0c;2024已经快走完了十二分之一。 回顾2023&#xff0c;整个程序员行业关键词总结为&#xff1a;跳槽&#xff0c;加班&#xff0c;裁员&#xff0c;失业&#xff0c;欠薪。 前几年互联网的火爆随着这几年疫情&#xff0c;国际社会动荡&#xff0c;国内外经…

Java设计模式详解-更新中

收藏和关注的同时&#xff0c;请也关注 公众号 “IT技术馆” 各位大家好&#xff0c;从今天开始&#xff0c;作者开始整理 《JAVA软件设计模式&#xff08;GOF&#xff09;》 专栏。请各位多多关注&#xff01; 该专栏是根据作者的技术经验和设计模式的了解&#xff0c;进行详…

Docker-Confluence部署记录

启动 docker container run -v $(pwd):/var/atlassian/application-data/confluence/ --nethost -d --nameconfluence_720_20240120 confluence/confluence:7.2.0新建mysql数据库 导入破解包 atlassian-agent 参考-Confluence 破解方式&#xff08;Linux&#xff09; 按流程破…

idea消除代码区黄色警告

文章目录 前言一、修改配置总结 前言 idea的检查项较多&#xff0c;导致警告比较多看上去很不雅观。 一、修改配置 在idea中打开Settings 取消Warning和Weak Warning的勾选 总结 回到顶部

【Python学习】Python学习21- 正则表达式(1)

目录 【Python学习】Python学习21- 正则表达式&#xff08;1&#xff09; 前言re.match函数实例 re.search方法re.match与re.search的区别参考 文章所属专区 Python学习 前言 本章节主要说明Python的正则表达式。 正则表达式是一个特殊的字符序列&#xff0c;它能帮助你方便的…

uniCloud uni-id体系的使用

目录 简介 uni-id导入和配置 用户表与文章表关联foreignKey 字段级权限控制 指定数据集权限控制 权限规则的变量和运算符 简介 uni-id已完成的功能&#xff1a; 注册、登录、发送短信验证码、密码加密保存、修改密码、忘记密码、头像管理、token管理、rbac权限角色体系、…

04 单链表

目录 链表的概念和结构单链表OJ练习 1. 链表的概念和结构 1.1 链表的概念 链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的 1.从上图可以看出链式结构在逻辑上是连续的&#xff0c;物理上不一定连续 2.现…

提升网站关键词排名的工具

随着互联网的蓬勃发展&#xff0c;网站的关键词排名成为衡量网站流量和曝光度的重要指标。在这个竞争激烈的数字时代&#xff0c;站在搜索引擎结果的前列变得至关重要。为了实现这一目标&#xff0c;合理利用关键词排名优化工具是必不可少的。本文将重点介绍147SEO软件&#xf…