docker最常用的镜像命令和容器命令(代码片段)

向着阳光漫步 向着阳光漫步     2022-11-30     584

关键词:

原文来自:cnblogs.com/mrhelloworld/p/docker4.html

本文列出了 Docker 使用过程中最常用的镜像命令和容器命令,以及教大家如何操作容器数据卷,实现容器数据的备份。熟练练习这些命令以后,再来一些简单的应用部署练习,大家就可以学习 Docker 的镜像构建、备份恢复迁移、镜像仓库、网络、集群等等更多的内容。

(一)镜像相关命令

官方文档:https://docs.docker.com/reference/

1.1 查看镜像

[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:镜像大小

  这些镜像都是存储在 Docker 宿主机的 /var/lib/docker 目录下。

1.2 搜索镜像

如果你需要从网络中查找需要的镜像,可以通过以下命令搜索。

docker search 镜像名称

  • NAME:镜像名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反映一个镜像的受欢迎程度
  • OFFICIAL:是否为官方构建
  • AUTOMATED:自动构建,表示该镜像由 Docker Hub 自动构建流程创建的。

1.3 拉取镜像

 拉取镜像就是从中央仓库下载镜像到本地。

docker pull 镜像名称

假如我要拉取 centos 镜像到本地,如果不声明 tag 镜像标签信息则默认拉取 latest 版本,也可以通过:https://hub.docker.com/ 搜索该镜像,查看支持的 tag 信息。

 

docker pull centos:7

 

1.4 删除镜像

按镜像 ID 删除镜像。

 

# 删除单个镜像
docker rmi 镜像ID
# 删除多个镜像
docker rmi 镜像ID 镜像ID 镜像ID

 

docker images -q  :可以查询到所有镜像的 ID,通过组合命令可以实现删除所有镜像的操作。

docker rmi `docker images -q`

注意:如果通过某个镜像创建了容器,则该镜像无法删除。

解决办法:先删除镜像中的容器,再删除该镜像。

 

二) 容器相关命令

2.1 查看容器

查看正在运行的容器。

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE        COMMAND        CREATED        STATUS        PORTS        NAMES
  • CONTAINER ID:容器 ID
  • IMAGE:所属镜像
  • COMMAND
  • CREATED:创建时间
  • STATUS:容器状态
  • PORTS:端口
  • NAMES:容器名称

 

查看停止的容器。

docker ps -f status=exited

查看所有容器(包括运行和停止)。

docker ps -a

查看最后一次运行的容器。

docker ps -l

 

2.2 创建和启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • -i:表示运行容器;
  • -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端;
  • --name:为创建的容器命名;
  • -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个 -v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上;
  • -d:在 run 后面加上 -d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加 -i -t 两个参数,创建容器后就会自动进容器里);
  • -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个 -p 做多个端口映射。
  • -P:随机使用宿主机的可用端口与容器内暴露的端口映射。

 

2.3 创建并进入容器

下面这行命令的意思就是通过镜像 AA 创建一个容器 BB,运行容器并进入容器的  /bin/bash

docker run -it --name 容器名称 镜像名称:标签 /bin/bash

注意:Docker 容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为是空闲状态,就会自动退出。

 

2.4 退出当前容器

exit

 

2.5 守护式方式创建容器

docker run -di --name 容器名称 镜像名称:标签

登录守护式容器方式

docker exec -it 容器名称|容器ID /bin/bash

2.6 停止与启动容器

# 停止容器
docker stop 容器名称|容器ID
# 启动容器
docker start 容器名称|容器ID

2.7 文件拷贝

如果我们需要将文件拷贝到容器内可以使用 cp 命令。

docker cp 需要拷贝的文件或目录 容器名称:容器目录

也可以将文件从容器内拷贝出来。

docker cp 容器名称:容器目录 需要拷贝的文件或目录

2.8 目标挂载

我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器,而且这个操作是双向绑定的,也就是说容器内的操作也会影响到宿主机,实现备份功能。

  但是容器被删除的时候,宿主机的内容并不会被删除,因为底层是通过拷贝实现的。如果多个容器挂载同一个目录,其中一个容器被删除,其他容器的内容也不会受到影响,同理,底层是拷贝实现的。

  但是容器被删除的时候,宿主机的内容并不会被删除。如果多个容器挂载同一个目录,其中一个容器被删除,其他容器的内容也不会受到影响。

 容器与宿主机之间的数据卷属于引用的关系,数据卷是从外界挂载到容器内部中的,所以可以脱离容器的生命周期而独立存在,正是由于数据卷的生命周期并不等同于容器的生命周期,在容器退出或者删除以后,数据卷仍然不会受到影响,数据卷的生命周期会一直持续到没有容器使用它为止。

创建容器添加 -v 参数,格式为宿主机目录:容器目录,例如:

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
# 多目录挂载
docker run -di -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名

目录挂载操作可能会出现权限不足的提示。这是因为 CentOS7 中的安全模块 SELinux 把权限禁掉了,在 docker run 时通过 --privileged=true 给该容器加权限来解决挂载的目录没有权限的问题。

 

2.9 匿名挂载

匿名挂载只需要写容器目录即可,容器外对应的目录会在 /var/lib/docker/volume 中生成。

# 匿名挂载
docker run -di -v /usr/local/data --name centos7-02 centos:7
# 查看 volume 数据卷信息
docker volume ls

 

 

2.10 具名挂载

具名挂载就是给数据卷起了个名字,容器外对应的目录会在 /var/lib/docker/volume 中生成。

# 匿名挂载
docker run -di -v docker_centos_data:/usr/local/data --name centos7-03 centos:7
# 查看 volume 数据卷信息
docker volume ls

 

2.11 指定目标挂载

一开始给大家讲解的方式就属于指定目录挂载,这种方式的挂载不会在 /var/lib/docker/volume 目录生成内容。

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
# 多目录挂载
docker run -di -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名

 

2.12 查看目标挂载关系

通过 docker volume inspect 数据卷名称 可以查看该数据卷对应宿主机的目录地址。

[root@localhost ~]# docker volume inspect docker_centos_data
[
    
        "CreatedAt": "2020-08-13T20:19:51+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/docker_centos_data/_data",
        "Name": "docker_centos_data",
        "Options": null,
        "Scope": "local"
    
]

 

通过 docker inspect 容器ID或名称 ,在返回的 JSON 节点中找到 Mounts,可以查看详细的数据挂载信息。

 

 

2.13 只读/读写

# 只读。只能通过修改宿主机内容实现对容器的数据管理。
docker run -it -v /宿主机目录:/容器目录:ro 镜像名
# 读写,默认。宿主机和容器可以双向操作数据。
docker run -it -v /宿主机目录:/容器目录:rw 镜像名

 

2.14 volumes-from(继承)

# 容器 centos7-01 指定目录挂载
docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
# 容器 centos7-04 和 centos7-05 相当于继承 centos7-01 容器的挂载目录
docker run -di --volumes-from centos7-01 --name centos7-04 centos:7
docker run -di --volumes-from centos7-01 --name centos7-05 centos:7

 

2.15 查看容器IP地址

我们可以通过以下命令查看容器的元信息。

docker inspect 容器名称|容器ID

也可以直接执行下面的命令直接输出 IP 地址。

docker inspect --format=\'.NetworkSettings.IPAddress\' 容器名称|容器ID

 

2.16 删除容器

# 删除指定容器
docker rm 容器名称|容器ID
# 删除多个容器
docker rm 容器名称|容器ID 容器名称|容器ID

常用命令的练习就到这里,下文我们来一些简单的应用部署练习,加强 Docker 命令的使用。

 

docker常用命令(代码片段)

docker的常用命令帮助命令镜像命令查看镜像搜索镜像下载镜像删除镜像容器命令新建容器并启动列出所有运行的容器退出容器删除容器启动和停止容器的操作查看容器中的进程信息查看镜像的元数据进入当前正在运行的容器将容... 查看详情

docker----常用命令(镜像和容器的常用命令)(代码片段)

帮助命令dockerversion     #显示docker的版本信息dockerinfo        #显示docker的系统信息,包括镜像和容器的数量docker命令--help    #帮助命令帮助文档的地址:https 查看详情

docker常用命令01(代码片段)

docker常用命令Docker常用命令镜像命令dockersearch搜索镜像dockerpull下载镜像dockerrmi删除镜像容器命令新建容器并启动从容器中退回主机列出所有的运行的容器退出容器删除容器启动和停止容器的操作常用其他命令后台启动容器例子... 查看详情

docker镜像和容器常用命令(代码片段)

 一、镜像操作1.搜索镜像可以直接在DockerHub 直接搜索镜像,当然也可以使用命令来搜索。 dockersearch名称dockersearchtomcat2.拉取镜像dockerpull镜像名#拉取redis3.0dockerpullredis:3.0 3.查看镜像列表Docker镜像保存在/var/lib/dockerd... 查看详情

docker常用命令(代码片段)

docker的常用命令帮助命令镜像命令查看镜像搜索镜像下载镜像删除镜像容器命令新建容器并启动列出所有运行的容器退出容器删除容器启动和停止容器的操作查看容器中的进程信息查看镜像的元数据进入当前正在运行的容器将容... 查看详情

dockercentos64位安装及常用命令(代码片段)

DockerCentos64位安装及常用命令1.Docker安装(1).添加yum源(2).安装运行Docker(3).检查安装结果(4).Docker启动和关闭1).启动2).关闭3).重启2.Docker常用命令(1).搜索镜像(2).列出当前系统存在的镜像(3).拉取镜像(4).运行容器(5).列出当前运行的容器... 查看详情

云原生•dockerdocker常用命令总结(值得收藏)(代码片段)

上一篇文章大家应该了解和搭建了Docker环境,Docker是一个开源的应用容器引擎。直通车:【云原生•Docker】初识Docker和Docker的坏境搭建(保姆级教学)作为一名开发或者运维人员,掌握Dcoker的命令是必不可少的。Docker命... 查看详情

docker常用命令整理(代码片段)

文章目录前言docker常用命令整理01查看docker系统02查看所有信息03列出已经下载的镜像04查找官方仓库中的镜像05下载镜像06启动镜像07停止容器07::01停止容器07::02停用全部运行中的容器:07::03删除全部容器07::04一条命令实现停... 查看详情

docker常用命令整理(代码片段)

文章目录前言docker常用命令整理01查看docker系统02查看所有信息03列出已经下载的镜像04查找官方仓库中的镜像05下载镜像06启动镜像07停止容器07::01停止容器07::02停用全部运行中的容器:07::03删除全部容器07::04一条命令实现停... 查看详情

docker镜像常用命令docker容器常用命令(代码片段)

Docker镜像的实际使用开发的机器mac,windows,我又不想搞乱我当前机器的环境mac装一个nginx,二进制安装,编译安装,brewinstallnginx…Docker安装服务下载安装docker工具获取该软件的docker镜像(你以后想要用的各种工... 查看详情

docker镜像常用命令docker容器常用命令(代码片段)

Docker镜像的实际使用开发的机器mac,windows,我又不想搞乱我当前机器的环境mac装一个nginx,二进制安装,编译安装,brewinstallnginx…Docker安装服务下载安装docker工具获取该软件的docker镜像(你以后想要用的各种工... 查看详情

docker常用命令(代码片段)

搜索镜像#dockersearch[镜像名][--limit]常用参数限制查找行数下载镜像#dockerpull镜像名删除镜像#dockerrmi镜像名实例化镜像创建容器#dockerrun[可选常用参数]镜像名run常用参数--name容器名-d后台方式运行-it使用交互方式运行可以进入容器-... 查看详情

docker一些常用命令(代码片段)

dockerversion:查看Docker版本信息。该命令可以查看当前安装的Docker版本信息,包括Docker引擎、客户端、API等版本。dockerinfo:查看Docker的详细信息。该命令可以查看Docker的详细信息,包括容器、镜像、网络等。dockersearch:搜索DockerH... 查看详情

docker常用命令(代码片段)

...#xff08;仓库)命令tag命令(build)创建镜像commitdockerpushsave(保存镜像到本地)load(从本地文件加载镜像)容器命令运行容器启动容器停止容器查看容器的元数据信息查看日志,根据对应容器的名称... 查看详情

docker常用命令(代码片段)

docker的使用命令1docker命令介绍docker--help管理命令:container管理容器image管理镜像network管理网络命令:attach介入到一个正在运行的容器build根据Dockerfile构建一个镜像commit根据容器的更改创建一个新的镜像cp在本地文件系统与容器... 查看详情

docker的一些常用命令(代码片段)

 Docker采用的是Client/Server架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个Host上,客户端也可以通过socket或RESTAPI与远程的服务器通信。Dockerdaemon运行在Dockerhost上,负责... 查看详情

docker常用的基础命令(代码片段)

docker常用的基础命令镜像命令:搜索镜像:dockersearchimages_name下载镜像:dockerpullimages_name查看当前的所有镜像:dockerimages删除本地镜像:dockerrmiimages_name容器操作:新建容器并启动:#在容器里启动一个/bin/bashshell环境,可以登录... 查看详情

docker常用的命令总结(代码片段)

文章目录一、镜像1.1查找镜像2.2拉取镜像二、容器2.1查看容器2.2执行容器2.3启停容器2.4删除容器2.5文件系统从实体机拷贝到容器从容器拷贝到实体机(从容器拷贝出来)目录挂载2.6查看容器信息(包括ip)三、迁... 查看详情