Docker常用命令

本文详细介绍了Docker的基本概念、常用命令,包括启动、停止、镜像管理(拉取、搜索、删除、导出/导入)、容器操作(创建、查看、停止/重启/删除、日志、进程查看)以及文件操作,适合初学者和管理员参考。

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

Docker常用命令

思维导图

1.  docker介绍

1.1.  基本概念

Docker 包括三个基本概念:

● 镜像(Image):Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

● 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

● 仓库(Repository):仓库(Repository)类似Git的远程仓库,集中存放镜像文件。

1.2.  关系

2.  帮助启停命令

2.1.  启动docker

systemctl start docker

2.2.  停止docker

systemctl stop docker

2.3.  重启docker

systemctl restart docker

2.4.  设置开机启动

systemctl enable docker

2.5.  查看docker版本信息

2.5.1.  简略版本信息

docker -v

2.5.2.  详细版本信息

docker version

2.6.  查看docker概要信息

docker info

2.7.  查看docker帮助

docker --help

2.8.  查看docker具体命令帮助

docker 具体命令 --help

2.9.  查看docker状态

systemctl status docker

3.  镜像命令

3.1.  导入镜像操作

3.1.1.  列出导入镜像

docker images [OPTIONS] [ARGS]

3.1.2.  说明

        示例:

        各选项说明

        同一仓库源可以有多个TAG版本,代表这个仓库源的不同版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。如果你不指定一个镜像的版本标签,例如你只使用 redis,docker 将默认使用 redis:latest 镜像。

        OPTIONS说明:可以通过docker images --help 查看OPTIONS

        -a : a表示all,列出本地所有的镜像(含历史映像层)

        -q :只显示镜像ID。

        ARGS说明:可以直接写镜像名,比如centos,mysql等等,就是直接查对应的镜像信息。

3.2.  远程仓库中搜索某个镜像

        远程仓库为 https://hub.docker.com,也可以配置了国内仓库(例如阿里仓库)。

        搜索镜像命令如下

docker search [OPTIONS] 镜像名字

示例

OPTIONS说明:可以通过docker search --help查看OPTIONS

--limit int: 只列出int个镜像,默认25个

docker search --limit 5 redis

3.3.  从远程仓库下载镜像

下载镜像命令

docker pull 镜像名字[:TAG]

#不写TAG就是最新版本
docker pull 镜像名字
#等价于
docker pull 镜像名字:latest

3.4.  查看镜像/容器/数据卷所占的空间

        执行命令

docker system df 

3.5.  删除镜像(通过镜像ID)

3.5.1.  删除单个镜像

#-f 表示强制删除
docker rmi  -f 镜像ID

3.5.2.  删除多个镜像

docker rmi -f 镜像名1:TAG 镜像名2:TAG 

3.5.3.  删除全部镜像

docker rmi -f $(docker images -qa)

3.6.  导出镜像

docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS 说明:
-:输出到的文件。

        示例:

        docker save -o my_ubuntu_v1.tar test/ubuntu:v1

3.7.  导入镜像

docker load [OPTIONS]
OPTIONS 说明:
--input , -: 指定导入的文件,代替 STDIN。
--quiet , -: 精简输出信息。

        示例:

        docker load < test.tar.gz

4.  容器命令

        有镜像才能创建容器。

4.1.  创建容器(启动容器)

        创建容器命令

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

        说明:

        OPTION说明有些一个减号,有些两个减号

        --name="容器别名" 容器指定一个名称

        -d后台运行容器返回容器ID(启动守护容器)

        -i交互模式运行容器通常-t同时使用

        -t 容器重新分配一个输入终端通常-i同时使用启动交互式容器(前台有伪终端,等待交互)

        -P:随机端口映射大写P

        -p指定端口映射小写p

4.1.1.  针对 -i -t的说明

        i:interactive 交互的意思;t:tty 终端的意思

4.1.2.  关于-i -t 与 -it的区别

        i是创建标准io接口,t是伪造tty终端;如果光一个i的话,虽然也可以输入命令得到输出,但结果很不友好,自己可以试试;如果光一个t,就只有一个tty,你输入什么都没有反应,因为你没有开放对应的输入接口;正确的应该是-it,开放接口并创建伪tty。

4.1.3.  启动交互式容器(前台命令行)

###使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

docker run -it centos /bin/bash  

参数说明:-i: 交互式操作。-t: 终端。centos : centos 镜像。/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。要退出终端,直接输入 exit

###使用镜像centos:latest以交互模式启动一个容器,并指定容器名,在容器内执行/bin/bash命令。

docker run -it --name=mycontainer1 ubuntu /bin/bash

4.2.  列出当前所有正在运行的容器

        执行命令

docker ps [OPTIONS]

        OPTIONS说明(常用):

        -a:列出当前所有正在运行的容器+历史上运行过的容器;

        -l:显示最近创建的容器;

        -n:显示最近n个创建容器;

        -q:静默模式,只显示容器编号

4.3.  退出容器

        两种退出方式

1.  exit:run进去容器exit退出容器停止

2.  ctrl+p+q:run进去容器ctrl+p+q退出容器不停止

4.4.  启动已停止运行的容器

        docker start是启动已有容器,docker run是新建并启动容器,这里需要区分开。

docker start 容器ID或者容器名

4.5.  重启容器

docker restart 容器ID或者容器名

4.6.  停止容器

docker stop 容器ID或者容器名

4.7.  强制停止容器

docker kill 容器ID或容器名

4.8.  删除容器

        在删除之前需要先停止容器,然后执行以下命令:

docker rm 容器ID

        强制删除容器,容器运行时可以直接删除:

docker rm -f 容器ID

4.9.  一次性删除多个容器示例

#方式一
docker rm -f $(docker ps --q)

#方式二
docker ps --q | xargs docker rm

4.10.  启动守护式容器(后台服务器)

        在大部分的场景下,我们希望 docker 的服务是在后台运行的, 我们可以过 -d 指定容器的后台运行模式。

docker run -itd 容器名

        说明:

        如果只执行`docker run -d 容器名`使用命令`docker ps -a`查看会发现容器已经退出出现情况原因:docker容器后台运行,就必须有一个前台进程;器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的解决方案是:将你要运行的程序以前台进程的形式运行,常见就是-it命令行模式,表示后续还有交互操作。

4.11.  查看容器日志

docker logs 容器ID

4.12.  查看容器运行进程

docker top 容器ID

4.13.  查看容器内部细节

docker inspect 容器ID

4.14.  进入正在运行容器以命令行交互(exec)

docker exec -it 容器ID /bin/bash

4.15.  attach进入

docker attach 容器ID

        exec和attach区别

        attach 直接进入容器启动命令的终端,不会启动新的进程 用exit退出,会导致容器的停止。

        exec 是在容器中打开新的终端,并且可以启动新的进程 用exit退出,不会导致容器的停止。

        推荐大家使用 docker exec 命令,因为退出容器终端,不会导致容器的停止。

        以进入正在运行的redis服务

docker exec -it 容器ID /bin/bash
docker exec -it 容器ID redis

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

        从 容器 ->(拷贝到) 宿主主机

docker cp  容器ID:容器内路径 目的主机路径

4.17.  导出容器

docker export 容器ID > 文件名.tar 

4.18.  导入容器快照

cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Tachypsychia

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

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

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

打赏作者

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

抵扣说明:

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

余额充值