【Docker】Docker常用命令总结

news/2025/1/3 3:17:59/

文章目录

  • 一、帮助命令
  • 二、镜像命令
  • 三、容器命令
  • 四、常用的其他命令


在开发过程中,经常涉及到 docker 的相关操作,本文对常用的指令进行汇总。

一、帮助命令

docker version    # 显示docker版本信息
docker info       # 显示docker系统信息,包括镜像和容器数量
docker 命令 --help # 帮助信息

帮助文档:

https://docs.docker.com/engine/reference/commandline/docker/

二、镜像命令

帮助文档:https://docs.docker.com/engine/reference/commandline/image/

docker images 查看所有本地的主机上的镜像

[root@jiangwang /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED      SIZE
hello-world   latest    d1165f221234   3 days ago   13.3kB# 解释
REPOSITORY   镜像的仓库源
TAG          镜像的标签
IMAGE ID     镜像的id
CREATED      镜像的创建时间
SIZE         镜像的大小# 可选项-a, --all             # 列出所有的镜像-q, --quiet           # 只显示id[root@jiangwang /]# docker images -a
REPOSITORY    TAG       IMAGE ID       CREATED      SIZE
hello-world   latest    d1165f221234   3 days ago   13.3kB
[root@jiangwang /]# docker images -q
d1165f221234
[root@jiangwang /]# docker images -aq
d1165f221234
[root@jiangwang /]# 

docker search 搜索镜像

[root@jiangwang /]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10589     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   3963      [OK]  # 可选项,通过镜像来过滤-f, --filter=STARS=3000   # 搜索出来的镜像就是STARS大于3000的 [root@jiangwang /]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   10589     [OK]       
mariadb   MariaDB Server is a high performing open sou…   3963      [OK]       
[root@jiangwang /]# docker search mysql --filter=STARS=5000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   10589     [OK]       
[root@jiangwang /]# 

docker pull 下载镜像

docker pull image_name# 下载一个mysql的镜像,默认下载最新的镜像
[root@jiangwang /]# docker pull mysql# 下载指定版本的镜像
[root@jiangwang /]# docker pull mysql:5.7# 查看一下下载的所有镜像
[root@jiangwang /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    d1165f221234   3 days ago    13.3kB
mysql         5.7       a70d36bc331a   7 weeks ago   449MB
mysql         latest    c8562eaf9d81   7 weeks ago   546MB

删除镜像

# 根据id删除镜像 docker rmi -f a70d36bc331a
[root@jiangwang /]# docker rmi -f a70d36bc331a
Untagged: mysql:5.7
Untagged: mysql@sha256:b3d1eff023f698cd433695c9506171f0d08a8f92a0c8063c1a4d9db9a55808df
Deleted: sha256:a70d36bc331a13d297f882d3d63137d24b804f29fa67158c40ad91d5050c39c5
Deleted: sha256:50c77bf7bcddd1f1d97789d80ac2404eec22c860c104e858620d2a2e321f0ef7
Deleted: sha256:14244329b83dfc8982398ee4104a548385652d2bffb957798ff86a419013efd6
Deleted: sha256:6d990477f90af28473eb601a9bca22253f6381e053c5a8edda0a4f027e124a3c
Deleted: sha256:ee0449796df204071589162fc16f8d65586312a40c68d1ba156c93c56f5e5ce8
[root@jiangwang /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    d1165f221234   3 days ago    13.3kB
mysql         latest    c8562eaf9d81   7 weeks ago   546MB
[root@jiangwang /]# ## 删除所有镜像
[root@jiangwang /]# docker rmi -f $(docker images -aq)
[root@jiangwang /]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@jiangwang /]# # 删除多个镜像
docker rmi -f 镜像id 镜像id 镜像id

三、容器命令

说明:有了镜像才能创建容器,Linux,下载一个centos镜像

[root@jiangwang /]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
7a0437f04f83: Pull complete 
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
[root@jiangwang /]# 

新建容器并启动

docker run [可选参数] image# 参数说明
--name="Name"    容器名字  tomcat01  tomcat02,用来区分容器
-d               后台方式运行
-it              使用交互方式运行,进入容器查看内容
-p               指定容器端口  -p 8080:8080-p ip:主机端口:容器端口-p 主机端口:容器端口  (常用)-p 容器端口容器端口-P               随机指定端口# 测试,启动并进入容器
[root@jiangwang /]# docker run -it centos /bin/bash
[root@685c34c813d5 /]# ls   # 查看容器内的centos
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr# 从容器中退回主机
[root@685c34c813d5 /]# exit
exit
[root@jiangwang /]# ls
bin   dev  home        lib    lost+found  mnt  patch  root  sbin  sys  usr  www
boot  etc  install.sh  lib64  media       opt  proc   run   srv   tmp  var

查看当前有哪些容器正在运行

# docker ps 显示正常运行的容器
-a   # 显示当前正在运行的容器 + 历史运行过的容器
-n=? # 显示最近创建的容器
-q   # 只显示容器的编号
[root@jiangwang /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@jiangwang /]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                          PORTS     NAMES
685c34c813d5   centos         "/bin/bash"   3 minutes ago   Exited (0) About a minute ago             pensive_shaw
db8909cfa9cc   d1165f221234   "/hello"      4 hours ago     Exited (0) 4 hours ago                    adoring_shockley
[root@jiangwang /]# docker ps -n=1
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                     PORTS     NAMES
685c34c813d5   centos    "/bin/bash"   7 minutes ago   Exited (0) 5 minutes ago             pensive_shaw
[root@jiangwang /]# docker ps -aq
685c34c813d5
db8909cfa9cc
[root@jiangwang /]# 

退出容器

exit          # 直接退出容器并停止
Ctrl + P + Q  # 退出容器但是容器不停止[root@jiangwang /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@jiangwang /]# docker run -it centos /bin/bash
[root@589fa10f7998 /]# [root@jiangwang /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
589fa10f7998   centos    "/bin/bash"   31 seconds ago   Up 29 seconds             magical_noether
[root@jiangwang /]# 

启动、停止、重启容器命令

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

后台启动一个容器后,如果想进入到这个容器,可以使用attach命令

docker attach container_name/container_id

删除容器的命令

docker rm container_name/container_id   # 不能删除正在运行的容器

删除所有停止的容器

docker rm -f $(docker ps -a -q)

查看当前系统Docker信息

docker info

从Docker hub上下载某个镜像

docker pull centos:latest

查找ocker Hub上的nginx镜像

docker search nginx

四、常用的其他命令

后台启动容器

# docker run -d 镜像名
[root@jiangwang /]# docker run -d centos
dd83c9017b8b6cb2ed07d1943e0db8421b7ad0864ab291e7d470a6af76a8a6a9
[root@jiangwang /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@jiangwang /]# # 问题docker ps ,发现 centos 停止了
# 常见的坑:docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就自动停止
# nginx,容器启动后,发现袭击没有提供服务,就立刻停止,就是没有程序了

查看日志

docker logs -f -t --tail 容器

查看容器中的进程信息 ps

# 命令 docker top 容器id
[root@jiangwang /]# docker top fbff5b668c3a
UID      PID       PPID      C       STIME       TTY           TIME        CMD     
root     4345      4324      0       16:59       pts/0         00:00:00    /bin/bash

查看镜像中的元数据

# docker inspect 容器id
# 测试
[root@jiangwang /]# docker inspect 容器id

进入当前正在运行的容器

# 命令 docker exec -it 容器id /bin/bash# 测试
[root@jiangwang /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
fbff5b668c3a   centos    "/bin/bash"   16 minutes ago   Up 16 minutes             blissful
[root@jiangwang /]# docker exec -it fbff5b668c3a /bin/bash
[root@fbff5b668c3a /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@fbff5b668c3a /]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 08:59 pts/0    00:00:00 /bin/bash
root        16     0  0 09:16 pts/1    00:00:00 /bin/bash
root        32    16  0 09:17 pts/1    00:00:00 ps -ef# 方式二、docker attach 容器id
[root@jiangwang /]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
fbff5b668c3a   centos    "/bin/bash"   20 minutes ago   Up 20 minutes             blissful_tu
[root@jiangwang /]# docker attach fbff5b668c3a
[root@fbff5b668c3a /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@fbff5b668c3a /]# 

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

# 命令 docker cp 容器id:容器内路径 目的的主机路径
# 进入容器
[root@jiangwang /]# docker attach fbff5b668c3a      
[root@fbff5b668c3a /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@fbff5b668c3a /]# cd home/# 在容器内 home 路径下新建一个test.java文件
[root@fbff5b668c3a home]# touch test.java     
[root@fbff5b668c3a home]# ls
test.java
[root@fbff5b668c3a home]# exit
exit
[root@jiangwang /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 将容器内的test.java文件拷贝到linux主机上
[root@jiangwang /]# docker cp fbff5b668c3a:/home/test.java /home    
[root@jiangwang /]# cd home/
# 成功拷贝到/home目录下
[root@jiangwang home]# ls
f2  f3  jiangwang  test.java  www    

http://www.ppmy.cn/news/544875.html

相关文章

SkyWalking--用代码手动获取traceId的方法

原文网址&#xff1a;SkyWalking--用代码手动获取traceId的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java项目如何用代码手动获取SkyWalking的traceId。 引入依赖 <dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-tool…

深度学习代码环境配置(编译器, git, anaconda)

内容 编译器 gcc&#xff1a;GNU编译器套装C builderMicrosoft Visual C&#xff08;MSVC&#xff09;&#xff1a;微软的VC编译器MinGW&#xff08;Minimalist GNU on Windows&#xff09;&#xff1a;可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合&…

C语言进阶教程(再论指针和数组(2))

文章目录 前言一、指针的加1减1运算二、指针的减法运算三、指针的关系运算四、指针比较运算总结 前言 本篇文章我们继续讲解指针和数组&#xff0c;因为指针和数组对于刚刚学习C语言或者是学习了不久C语言的同学都会造成一些困扰&#xff0c;所以这里多用几篇文章来帮助大家理…

ubuntu重装系统后电脑没声音怎么办[已解决]

ubuntu装完系统后耳机没声音 驱动没问题的话,就可能是”realtek音频管理器”的问题 1.右下角或控制面板中找到”realtek音频管理器” 发现目前只有设备 “Digital Output” 没有扬声器和麦克风 2.设置-选项 3.更改为AC97前面板 4.更改完后发现变成3个设备了,其中扬…

重装系统后电脑没有声音输出怎么办

** 重装系统后电脑没有声音输出怎么办&#xff1f; 经常遇到重装系统前&#xff0c;电脑声音正常&#xff0c;重装后没有声音&#xff0c;没拔过线&#xff0c;没动过硬件&#xff0c;所以这时就先排除硬件问题。 原因可能有下面3种情况&#xff1a; 1&#xff0c;设置问题。…

解决Win10重装系统后,蓝牙耳机可连接但无声音的问题

解决Win10重装系统后&#xff0c;蓝牙耳机可连接但无声音的问题 我是装完win10系统以后又重装了所有驱动&#xff0c;然后出现了这个问题。有连接成功和断开提示音&#xff0c;但是点击测试、调节音量或放音乐都没声音。 折腾了一下午&#xff0c;按照网上说的&#xff0c;还咨…

Surface Book重装系统步骤

Surface Book平板电脑是一款集黑科技于一身的气质神机&#xff0c;不管时尚简约的精心设计&#xff0c;还是酷炫个性的形态切换&#xff0c;低调奢华有内涵&#xff0c;轻松吸引潮男潮女的目光。那么&#xff0c;拥有逼格满满的Surface Book该如何重装win10系统呢?下面听快启动…

戴尔服务器重装系统优盘启动不了怎么办,戴尔电脑重装系统识别不了u盘怎么办...

1.你好 您好, 建议您一定要安装windows原版操作系统,不要使用Ghost版本的操作系统,因为这类操作系统多为精简系统,稳定性和兼容性非常差。并且注意不要使用驱动管理软件查找公版驱动,而是应该使用出厂自带的操作系统光盘或者到戴尔官网下载相应的各硬件驱动程序进行安装,…