docker操作手册

449 阅读9分钟

1. 系统首页(Summery)

image.png 可以看到系统的CPU、Memory、Container、Images信息。 Host inf:主机信息、Linux操作系统版本。 Docker信息:容器的运行总览、镜像总数、docker版本、docker镜像仓库等 集群信息:项目未配置集群,如果配置可以展示集群信息。

2. Settings配置

image.png

1.主机管理:可以新增主机,移除主机 2.修改密码 3.Registry: 指的是 Docker 配置中用于设置仓库信息的部分。当您在使用 Docker 时,这些设置将决定您与哪个 Registry 交互,以及交互的方式。 4.用户管理:新增、查询、删除用户。

6. 使用容器(Contianer)

设计思路

  1. 创建基本Spring Boot应用程序的中台接口接受请求参数,调用Docker
  2. Docker API客户端: 选择一个Java库,用于与Docker API进行通信。本项目使用Docker Java(github.com/docker-java…),这是一个非常成熟且易于使用的库。
  3. WebSocket: 使用Spring WebSocket库实现实时更新。通过WebSocket,在Docker容器和镜像的状态发生变化时,可以将这些更改实时传输给客户端。

6.1. 点击侧边栏Contianer打开进入首页

image.png 这里看一看到容器的总揽信息包括:容器名、镜像、Docker容器网络类型和Docker容器的IP地址、Docker容器内部的端口映射到宿主机器上的端口、容器状态、容器的操作。\
Name:容器名,容器对应的名字。
Image:镜像,创建容器所基于的镜像。
Network:Docker容器网络类型,Docker内部有一个组件负责处理虚拟网络连接,允许容器通过网络来通信。Docker提供了多种网络类型,如桥接网络(bridge)、主机网络(host)等,均可帮助Docker容器互相通信或者与外部系统交互。
IP:Docker容器的IP地址,每个Docker容器在创建时会自动分配一个私有IP地址,这个IP地址用于容器之间以及容器和宿主机之间的通信。
Export Port:是将Docker容器内部的端口映射到宿主机器上的端口的概念。这是为了让Docker容器内的应用程序与宿主机器或外部网络进行通信。
Status:容器的运行状态,退出态、运行态等 转存失败,建议直接上传图片文件 

6.2. 新增容器

image.png 1.点击容器首页的+号

image.png

Runtime中名词解释


Name:容器名,容器对应的名字。
Image:镜像,创建容器所基于的镜像。
Privileged:用于在创建docker容器时赋予容器特权模式。特权模式允许容器中的进程对宿主机具有更高的权限,例如访问宿主机的设备文件、更改宿主机的系统配置等。Privileged、WorkDir、User、Command、Entrypoint、interactive
User:User用于指定容器中运行进程的用户。
WorkDir:在Docker容器中,WorkDir指定了默认工作目录。当在容器中执行命令时,这些命令将在指定的WorkDir中运行。可以通过Dockerfile使用 `WORKDIR` 指令或使用docker run命令的 `-w` 参数来设置WorkDir。
Command:在Docker容器中,Command是要在容器启动时默认执行的命令。可以通过Dockerfile中的`CMD`指令或使用docker run命令后的参数来设置。如果同时使用了Entrypoint选项,Command将作为Entrypoint的参数。
Entrypoint:Entrypoint决定了在容器启动时要运行的可执行程序,可以通过Dockerfile中的 `ENTRYPOINT`指令或使用docker run命令的 `--entrypoint` 参数来设置。与Command不同,Entrypoint定义的程序不会被docker run命令中传递的参数所覆盖,传递的参数会作为Entrypoint程序的参数。
Tty:在Docker中创建一个新容器时,通过使用 `-t` 或 `--tty` 选项,可以为运行在容器内的进程分配一个伪终端。这使得用户可以像在本地终端窗口中那样与容器进行交互。
Interactive:使用docker创建容器时,可以通过`-i`(或`--interactive`)选项进行交互式模式。这意味着容器的标准输入将保持打开,以便用户可以与容器进行交互。这在需要与容器中的进程或shell进行通信时非常有用。
同时可以Add Env添加环境变量:在 Docker 中创建容器时,`--env` 或 `-e` 选项用于设置环境变量。环境变量通常用于存储应用程序的配置信息,例如数据库连接字符串、API 密钥或其他程序需要的一些设置。通过使用环境变量,您可以在程序运行时动态更改这些设置值,而无需更改代码。

image.png

Resource中名词解释


cpu:分配给容器的CPU核心数。
Memory:限制容器最大使用的内存大小。
Network:将容器连接到指定的网络,可以是Docker内置的网络,如bridge、host等

Expose port名词解释

image.png 参数允许将容器的端口映射到宿主机的端口,这样外部能够访问到容器的服务,通常,一个容器中的服务会监听特定的端口,但是这个端口只能在容器内部访问。要让外部(如宿主机或其他设备)能够访问到容器内部的服务,我们需要将容器内部的端口映射到宿主机的一个端口。 端口映射的格式为 宿主机端口:容器端口[/协议]。例如:-p 8080:80/tcp。其中,"/协议" 部分是可选的,如果省略,默认为TCP协议。你可以使用UDP

Mount名词解释

image.png 在创建Docker容器时,mount选项允许你将宿主机的存储空间或者Docker数据卷挂载到容器里,以便在容器内访问这些文件和目录。挂载是一种将独立于容器的存储资源与容器联系起来的方法,用于数据持久化或在容器之间共享文件等目的。 mount选项支持三种类型的挂载:volumebindtmpfs

  1. volume: 数据卷(Volume)是由Docker管理的特殊目录,通常可以在多个容器之间共享,并可以持久存储容器数据。数据卷具有以下特点: - 生命周期独立于容器,删除容器不会删除卷中的数据。 - 可以方便地备份、迁移和共享数据。 - 不受宿主机文件系统访问权限的限制。 当使用mount类型为volume时,可以使用如下命令格式: --mount type=volume,source=<VOLUME_NAME>,destination=<CONTAINER_PATH> 其中,<VOLUME_NAME>是一个数据卷的名称,<CONTAINER_PATH>是容器内挂载的目录。
  2. bind: 绑定挂载(Bind Mount)允许将宿主机上的文件或目录挂载到容器内,同时容器内的改动会影响宿主机上的文件。这种挂载类型对于需要在宿主机和容器之间共享文件的场景非常有用。但需要注意,绑定挂载可能受到宿主机文件系统访问权限的限制。使用mount类型为bind,命令格式如下: --mount type=bind,source=<HOST_PATH>,destination=<CONTAINER_PATH> 其中,<HOST_PATH>表示宿主机的文件或目录路径,<CONTAINER_PATH>是容器内挂载的目录。
  3. tmpfs: tmpfs挂载允许你创建一个只保存在内存中的临时文件系统,数据仅在容器运行时存在,而不会持久化到磁盘。这种类型挂载适用于存放临时文件或者缓存数据等场景。使用mount类型为tmpfs,命令格式如下: --mount type=tmpfs,destination=<CONTAINER_PATH> <CONTAINER_PATH>是容器内挂载的目录。

Link名词解释

image.png --link 参数用于在两个容器之间创建一个网络连接。这使得一个容器可以访问另一个容器的服务。

Restart Policy名词解释

image.png Docker容器创建时的restart policy意味着在Docker容器意外退出,系统重启或者Docker守护程序重启的情况下指示Docker引擎如何自动重新启动容器。这有助于确保在发生意外或系统重启后仍能正常运行容器。根据使用的策略,容器会在不同的情况下自动重新启动。 以下是可用的重启策略:

  1. no:这是默认策略。在这种情况下,退出的容器不会自动重启。
  2. on-failure:当容器以非零退出代码退出时,Docker将自动重新启动该容器。您还可以指定最大重启尝试次数。
  3. always:无论容器以何种方式退出,Docker都会尝试自动重启。这是确保容器始终处于运行状态的好方法。
  4. unless-stopped:Docker将始终尝试重启容器,除非我们明确停止它。当您将容器停止时,即使Docker守护程序重启,容器也不会恢复。

6.3. 容器操作

image.png

  1. docker stop:停止正在运行的容器。它会发送一个SIGTERM信号给容器内的主进程,让其优雅地停止,然后等待一段时间(默认为10秒)。如果容器仍在运行,将发送一个SIGKILL信号强制停止它。
  2. docker kill:杀死正在运行的容器,立即停止它们而不等待它们自然结束。默认情况下,它会发送SIGKILL信号,但也可以指定发送给容器的信号。
  3. docker pause:暂停容器的所有进程。这有助于在资源紧张时暂时释放它们的资源。请注意,这不会停止容器,只是暂时暂停它的控制组中的所有进程。
  4. docker remove:删除容器。它从Docker主机中移除容器实例。可以使用停止的容器的ID或名称进行操作。默认情况下,您无法移除正在运行的容器,除非使用“--force”选项强制移除。
  5. docker network connect:将一个运行中的容器连接到一个或多个网络。容器可以与多个网络通信。 ```
  6. docker network disconnect:将一个运行的容器从一个或多个网络断开连接。当您不再需要容器访问特定网络时,可以使用此命令。
  7. docker rename:修改容器的名称。可以在容器运行时更改容器的名称,而无需停止它。
  8. docker commit:创建一个新的镜像,从容器的更改中创建一个新的镜像层。可以使用此命令捕获容器中的当前状态,并创建一个新的Docker镜像,以供将来使用或共享。