【Docker】3、Docker的常用命令

本文详细介绍Docker的常用命令,包括帮助、镜像、容器等操作,如pull、push、run、rm、ps等,并解析各命令的功能及用法,帮助读者快速掌握Docker的日常管理。

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

Docker的常用命令

帮助命令

docker version  #显示docker的版本信息
docker info     #详细信息
docker 命令 --help   #帮助命令

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

镜像命令

docker images 查看镜像列表

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        7 months ago        13.3kB
#解释
REPOSITORY   镜像的仓库源
TAG          镜像的标签
IMAGE ID     镜像的ID
CREATED      镜像的创建时间
SIZE         镜像的大小

#可选项
-a   #列出所有镜像
-q   #只显示镜像的ID

docker search 搜索镜像

[root@localhost ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   9838                [OK]                
mariadb                           MariaDB is a community-developed fork of MyS…   3591                [OK]                
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   719                                     [OK]
percona                           Percona Server is a fork of the MySQL relati…   502                 [OK]      
#可选项,通过搜索来过滤
--filter=STARS=3000   #搜索出来的镜像就是STARS大于3000的

docker pull 下载镜像

# 下载镜像 docker pull 镜像名[:tag]
[root@localhost ~]# docker pull mysql
Using default tag: latest  #如果不写tag,默认就是最新版
latest: Pulling from library/mysql
bf5952930446: Pull complete   #分层下载 docker image 的核心  联合文件系统
8254623a9871: Pull complete 
938e3e06dac4: Pull complete 
ea28ebf28884: Pull complete 
f3cef38785c2: Pull complete 
894f9792565a: Pull complete 
1d8a57523420: Pull complete 
6c676912929f: Pull complete 
ff39fdb566b4: Pull complete 
fff872988aba: Pull complete 
4d34e365ae68: Pull complete 
7886ee20621e: Pull complete 
Digest: sha256:c358e72e100ab493a0304bda35e6f239db2ec8c9bb836d8a427ac34307d074ed     #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest    #真实地址

docker rmi 删除镜像

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

容器命令

说明:有了镜像才可以创建容器,下载centos镜像

docker pull centos

新建容器并启动

docker run[可选参数] image

#参数说明
--name="Name"   容器名字  tomcat01  tomcat02,用来区分容器
-d   后台方式运行
-it   使用交互方式运行,进入容器查看内容
-p   指定容器的端口 -p 8080:8080
	-p 主机端口:容器端口(常用)
	-p 容器端口
	容器端口
-P    随机指定端口


#测试,启动并进入容器
[root@localhost ~]# docker run -it centos /bin/bash
[root@2f787f69166a /]# ls  #查看容器内centos  基础命令  很多命令都是不完善的
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
exit  退出容器

列出所有的运行中的容器

#docker ps  #列出正在运行的容器
           -a  #显示正在运行的容器+带出历史运行过的容器
           -n=#显示最近创建的容器
           -q  #只显示容器的编号

退出容器

exit  #直接退出容器
ctrl + p + q  #不停止容器退出

删除容器

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@localhost ~]# docker run -d centos

# 问题docker ps,发现centos停止了

#常见的坑,docker容器使用后台运行,就必须要有一个 前台进程,docker发现没有应用,就会自动停止
#nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志命令

docker logs -tf 容器   #查看全部日志
docker logs -tf --tail 条数   容器  #查看指定条数日志

查看容器中进程信息ps

#命令  docker top 容器id   # 查看进程信息

查看镜像的元数据

docker inspect 容器id

进入当前正在运行的容器

#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
#命令
docker exex -it 容器id /bin/bash  #进入当前运行容器 

#方式二
docker attach 容器id

#docker exec   #进入容器开启一个新的终端
#docker attach  #进入容器正在执行的终端,不会启动新的进程

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

docker cp 容器id:容器内路径 目的主机路径
#查看镜像
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              0d120b6ccaa8        4 days ago          215MB
#进入容器
[root@localhost ~]# docker run -it centos
[root@1c5fa54eea90 /]# cd home     
[root@1c5fa54eea90 home]# touch a.java
[root@1c5fa54eea90 home]# [root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1c5fa54eea90        centos              "/bin/bash"         55 seconds ago      Up 54 seconds                           friendly_mccarthy
#将文件拷贝到主机上
[root@localhost ~]# docker cp 1c5fa54eea90:/home/a.java /home
[root@localhost ~]# cd /home
[root@localhost home]# ls
a.java  linux

#拷贝是一个手工过程,将来可以使用 -V卷的技术实现

小结

在这里插入图片描述

image-20200517092923812

img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值