Docker常用命令

本文详细介绍了Docker的基础命令,包括查看版本、信息、重启、修改存储路径,以及Docker镜像的搜索、拉取、管理,容器的创建、操作和文件传输。重点展示了常用选项和实战示例,帮助读者快速上手Docker技术。

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

一、Docker服务常用命令

1、查看docker版本

# docker version

2、查看docker信息

# docker info

# 查看docker信息:Docker Root Dir值为修改后的路径

3、重启启动命令

# sudo systemctl enable docker
# sudo systemctl daemon-reload
# sudo systemctl restart docker
# sudo systemctl status docker   -- 查看状态

4、更改docker默认的存储路径

# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph  /docker/docker

二、Docker镜像常用命令

1、搜索镜像

# docker search [OPTIONS] <TERM搜索词>

从Docker Hub查找镜像 https://hub.docker.com/   
[OPTIONS]可选参数说明:
--automated :只列出 automated build类型的镜像;
--no-trunc :显示完整的镜像描述;
-f <过滤条件>:列出收藏数不小于指定值的镜像。

# docker search php    -- 查询所有的PHP镜像
# docker search -f stars=100  php    -- 查询PHP收藏数大于100的镜像(注意这大于是使用=号)

如果查询参数说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
STARS: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED自动构建。

2、Docker镜像站查找镜像

docker官方镜像网站为: https://hub.docker.com/ 

如:我们要在官网镜像查询nginx镜像名称、tag等信息

-->

3、拉取镜像

# docker pull [OPTIONS] NAME[:TAG|@DIGEST]

[OPTIONS]可选参数说明:
-a :拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启
例:获取nginx的镜像

# docker pull nginx  --不指定:tag 默认下载最新的等效于下面的方法
# docker pull nginx:latest  -- 下载最新版
# docker pull nginx:stable  -- 下载稳定版
# docker pull nginx:1.18.0  --指定下载1.18.0

下载后我们用 docker images 命令可以查看本地下载的镜像

延伸阅读:Docker pull 下来的镜像默认保存在哪里?

3、列出已下载的镜像

# docker images    --- 不加任何参数表示列出本地所有镜像

# docker images [OPTIONS] [REPOSITORY[:TAG]] 

可选参数:
-a, --all:列出所有镜像 (默认隐藏中间层镜像)
--digests:显示镜像的摘要信息
-f, --filter:显示满足条件的镜像
--format:使用 Go 模板语法列出镜像
--no-trunc:不截断输出,显示完整镜像信息
-q, --quiet:只显示镜像 ID

例:列出本地镜像中REPOSITORY为nginx的镜像列表。

# docker images  ubuntu

例:列出本地所有镜像

# docker images 

如图: 
参数说明:
REPOSITORY :仓库名称,可以理解为镜像名称,多个可以重名
TAG: 标签名
如有【nginx:stable】定位了镜像的唯一性。

4、删除镜像

#删除本地一个或多少镜像。 
# docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS说明:
-f :强制删除;
--no-prune :不移除该镜像的过程镜像,默认移除;

例:删除nginx 标签为stable

# docker rmi nginx:stable

说明, 如果本地nginx的 REPOSITORY 值只有一个,可以省略 标签名

三、Docker容器常用命令

容器是由镜像来创建的,一个镜像可以创建多个容器,只要定义不同的容器名称即可

1、创建并启动容器

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

OPTIONS说明:

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
-v  --volume , 绑定一个卷

例:使用镜像 nginx:stable  创建一个名为 mynginx 的容器,并且后台启动,并将宿主机的8080端口映射到容器的80端口

# docker run -d --name mynginx  -p 8080:80  nginx:stable

2、列出本地容器

docker ps [OPTIONS]

OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。

例:列出本地创建的所有容器:

# docker ps  -a

列出如图:

3、重启容器、启动容器、停止容器

# docker  restart  容器CONTAINER ID 或 容器NAMES
# docker  start  容器CONTAINER ID 或 容器NAMES
# docker  stop 容器CONTAINER ID 或 容器NAMES

4、删除容器

docker rm :删除一个或多个容器。

# docker rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS说明:
-f :通过 SIGKILL 信号强制删除一个运行中的容器。
-l :移除容器间的网络连接,而非容器本身。
-v :删除与容器关联的卷。

# docker rm mynginx   --删除mynginx容器
# docker rm $(docker ps -a -q)   --删除所有处于终止状态的容器
# docker rm -f db01 db02  -- 强制删除容器 db01、db02:

# docker rm -l db    移除容器 nginx01 对容器 db01 的连接,连接名 db:

 5、进入容器

# docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明:
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端

例:进入容器mynginx  并开启一个交互模式的终端

# docker exec -it mynginx /bin/bash    --此容器必须是开启状态

进入后如图,类使一个虚拟机:

此虚拟机默认是用 apt-get  作为原(而不是yum)
先更新此源: # apt-get  update ;  
安装 vim命令
# apt-get install -y  vim 

四、文件传输命令

1、将容器文件拷贝至主机

# docker cp <容器名称或id>:<容器中文件路径> <宿主机中目标路径>

如:将mynginx容器的 /tmp/test.json 文件拷贝到主机 ~/Desktop 目录

# docker cp mynginx:/tmp/test.json ~/Desktop

2、 将主机文件拷贝至容器

# docker cp <文件路径> <容器名称或id>:<容器中文件目标路>

如:将主机的 ~/Desktop/foo.txt 文件拷贝至容器 mynginx 的 /var 目录

# docker cp ~/Desktop/foo.txt mynginx:/var


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值