Docker入门学习②----Docker常用命令

本文主要介绍了Docker的常用命令,包括帮助命令、镜像管理(如docker images, docker search, docker pull, docker rmi)和容器操作(如新建、列出、停止、删除容器)。此外,还提及了其他实用命令,如后台启动容器、查看日志和容器元数据等。" 133139838,20037656,STM32嵌入式开发入门:GPIO控制LED,"['STM32', '单片机', '嵌入式硬件', 'Cortex-M', '开发环境']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker的常用命令

帮助命令

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

帮助文档的地址:https://docs.docker.com/engine/reference/commandline/


镜像命令

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

[root@192 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        10 months ago       13.3kB

#  REPOSITORY 镜像的仓库源         TAG 镜像的标签                IMAGE ID 镜像id           CREATED 镜像创建时间             SIZE 镜像的大小

[root@192 ~]# docker images --help

# 可选项
# -a, --all    列出所有镜像
# -f, --filter 过滤
# -q, --quiet  只显示镜像的id

docker search 搜索镜像

[root@192 ~]# docker search mysql

docker pull 下载镜像

# docker pull 镜像名[:tag]
[root@192 ~]# docker pull mysql
Using default tag: latest  # 不加:tag,默认为latest最新版本
latest: Pulling from library/mysql
bb79b6b2107f: Pull complete  # 分层下载,docker image的核心  联合文件系统
49e22f6fb9f7: Pull complete 
842b1255668c: Pull complete 
9f48d1f43000: Pull complete 
c693f0615bce: Pull complete 
8a621b9dbed2: Pull complete 
0807d32aef13: Pull complete 
a56aca0feb17: Pull complete 
de9d45fd0f07: Pull complete 
1d68a49161cc: Pull complete 
d16d318b774e: Pull complete 
49e112c55976: Pull complete 
Digest: sha256:8c17271df53ee3b843d6e16d46cff13f22c9c04d6982eb15a9a47bd5c9ac7e2d # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest   # 真实地址

查看镜像mysql是否存在

docker rmi 删除镜像

# 删除指定镜像
[root@192 ~]# docker rmi -f 镜像id
# 删除多个镜像
[root@192 ~]# docker rmi -f 镜像id 镜像id 镜像id
# 删除全部镜像
[root@192 ~]# docker rmi -f $(docker images -aq)

mysql镜像被删除


容器命令

注意:有了镜像才可以创建容器

docker pull centos

新建容器并启动

docker run [可选参数] image
# 参数说明
--name="Name"  容器名字
-d             后台方式运行
-it            使用交互式方式运行,进入容器查看内容
-p             指定容器的端口 -p 8080:8080
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
-P             随机指定端口

# 启动并进入容器
[root@192 ~]# docker run -it centos /bin/bash
[root@9fe05fd16995 /]#

# 查看容器内的centos
[root@9fe05fd16995 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# 退出容器
[root@9fe05fd16995 /]# exit
exit
[root@192 ~]# ls
add_num.sh       dir888   initial-setup-ks.cfg  公共  视频  文档  音乐
anaconda-ks.cfg  file888  test.sh               模板  图片  下载  桌面

列出所有运行中的容器

# 列出当前正在运行的容器
docker ps
# 列出当前正在运行的容器以及运行过的容器
docker ps -a
# 只显示容器id
docker ps -q

退出容器

exit  # 直接停止容器并退出
Ctrl + p + q  # 容器不停止只是退回

删除容器

# 删除指定的容器,不能删除运行中的容器,若要删除使用rm -f强制删除
docker rm 容器id
# 删除所有的容器
docker rm -f $(docker ps -aq)

启动和停止容器

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

常用的其他命令

后台启动容器

# docker run -d 镜像名
[root@192 ~]# docker run -d centos
ca2a2a7c2e727d21e30cbe03b660d5be260273bc914f74688a9434ad5df38f16
[root@192 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
# 问题:docker ps时发现centos没有运行
# 注意:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止

查看日志

docker logs
docker logs -ft --tail 10 容器id

查看容器中的进程信息

docker top 容器id

查看容器的元数据

docker inspect 容器id

进入当前正在运行的容器

# 我们通常容器都是使用后台方式运行的,但有时需要进入容器

# 方式一
docker exec -it 容器id /bin/bash

# 测试
[root@192 ~]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f666ddf5ec8b        centos              "/bin/bash"         28 seconds ago      Up 27 seconds                           vigilant_lichterman
[root@192 ~]# docker exec -it f666ddf5ec8b bashShell
OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"bashShell\": executable file not found in $PATH": unknown
[root@192 ~]# docker exec -it f666ddf5ec8b /bin/bash
[root@f666ddf5ec8b /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
# 方式二
docker attach 容器id

# docker exec   进入容器后开启一个新的终端,可以在里面操作
# docker attach 进入容器正在执行的终端,不会启动新的进程

从容器拷贝文件到主机

docker cp 容器id:容器内文件路径 目的地主机路径
[root@192 ~]# docker cp f666ddf5ec8b:/home/test.py /home
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天意不可违.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值