Docker基本操作

Docker基本操作


  • 镜像操作

  • 容器操作

1. 镜像操作


1.1 镜像名称

Docker 镜像名称通常由两部分组成:REPOSITORY 和可选的 TAG

  • REPOSITORY 指定镜像的名称或路径,通常表示镜像的所有者和镜像名称。例如,nginx 表示 Nginx 镜像,myrepo/myapp 表示自定义的镜像。

  • TAG 是可选的,用于标识镜像的版本。默认标签是 latest,代表最新版本的镜像。例如 nginx:1.18 指定了 Nginx 的 1.18 版本。

image-20210731155141362

1.2 镜像命令

image-20210731155649535

1.2.1 拉取镜像

  • docker pull
{AD0DBB12-30DD-4E76-8FED-87F47086B993}

1.2.2 查看镜像

  • docker images
{1A691FD7-21B3-4FD1-9459-D87593BB7181}

1.2.3 保存镜像

  • docker save

可以用docker save --help查看相关的语法

{F0AFA01C-3B76-49F3-9BBE-A27BE9C58D89}

docker save -o [镜像保存为文件的名称] [镜像名称]

这里选择保存rabbitmq镜像进行测试,镜像保存为文件的名称为rabbitmq.tar

{2127319B-C0C8-49AB-9717-1FAD0F28306B}

查看保存的文件

{7F1F0188-2D43-4335-885A-774E437C1498}

1.2.4 删除镜像

  • docker rmi

删除rabbitmq镜像,docker rmi rabbitmq:latest

{B6E74CE6-3392-4C14-9A38-B7EC103F24F8}

查看镜像已经被删除了

{4FEA0819-5DBC-4972-8D33-FD1DD68197E3}

1.2.4 加载镜像压缩包

  • docker load

将压缩的rabbitmq.tar加载回去,用docker load --help查看相关的语法。

{39916476-1204-4A9F-A0A0-E66D33876371}

-i会显示详细日志,-q则不会。

docker load -i [镜像文件名称]

{1BF1740B-6598-4B34-B23D-160A3BFC4ADC}

查看镜像是否加载到docker

{2265A29F-2C30-490B-B082-3545F94AEA78}

2. 容器操作


2.1 容器的三个状态

容器的三个保护状态通常指的是容器在不同阶段的状态,这些状态帮助管理容器的生命周期。具体包括:

  1. 运行(Running)

    • 状态:容器正在运行,进程处于活跃状态,正在使用 CPU 和内存等资源。
    • 管理:可以对容器进行各种操作,如执行命令、查看日志、暂停、停止等。
  2. 暂停(Paused)

    • 状态:容器的进程被挂起,CPU 不再执行这些进程,但容器的内存和其他资源仍然被占用。
    • 管理:可以暂停一个运行中的容器,之后可以通过 docker unpause 恢复其运行。
  3. 停止(Stopped)

    • 状态:容器的进程已经终止,不再占用 CPU 资源,容器的内存也被回收。此时,容器处于静态状态,无法执行任何操作,直到再次启动。
    • 管理:可以停止一个运行中的容器,通过 docker start 可以重新启动它。如果需要彻底删除容器,可以使用 docker rm

相关指令

  • docker run:创建并运行一个容器,处于运行状态

  • docker pause:让一个运行的容器暂停

  • docker unpause:让一个容器从暂停状态恢复运行

  • docker stop:停止一个运行的容器

  • docker start:让一个停止的容器再次运行

  • docker rm:删除一个容器

image-20210731161950495

2.2 容器命令

2.2.1 创建并运行容器

  • docker run --name 容器的名称 -p 宿主机端口:容器端口 -d 镜像名称

这里的-p参数,是将容器端口映射到宿主机端口。

默认情况下,容器是隔离环境,我们直接访问宿主机的端口,是访问不到容器中的服务。

只有将容器端口与宿主机端口关联起来,当我们访问宿主机端口时,就会被映射到容器端口,这样就能访问到容器中的服务。

image-20210731163255863

例:创建一个nginx容器,并将nginx的容器端口80绑定到宿主机80端口

{D85A8F34-DBE1-4B9C-8BCC-37CAE6037F64}

2.2.2 查看容器日志

  • docker logs [容器名]

该指令会输出容器的日志信息,但是不是实时持续的日志。

{98BCD1B6-0C88-41E1-8325-9690504B7C28}

添加 -f 参数可以持续查看日志。

访问ip:80 ,然后看日志输出信息。

{DE4DB390-F018-4A33-9613-A9CCF6C59A17}

2.2.3 查看容器状态

  • docker ps

查看docker容器。

{E1240D03-D67A-4EB1-A4E2-9ED2822AFA5C}

docker ps -a 查看所有容器,包括已经停止的。

{DF8C739F-0363-423E-A4A5-B950542DBF85}