在 Ubuntu 22.04 中安装 Docker 的步骤如下:
1bash
2sudo apt update
1bash
2sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
1bash
2curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
1bash
2echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1bash
2sudo apt update
3sudo apt install docker-ce docker-ce-cli containerd.io
1bash
2sudo docker --version
1bash
2sudo usermod -aG docker $USER
请注意,将用户添加到 Docker 用户组后,需要注销并重新登录才能使更改生效。
1bash
2sudo systemctl start docker
1bash
2sudo systemctl enable docker
现在,Docker 已经安装在 Ubuntu 22.04 上,并且可以使用了。你可以通过运行 Docker 命令来验证安装是否成功,比如 docker --version
或者运行一个简单的容器来检查。
请注意,安装 Docker 需要在具有管理员权限的用户下执行,或者通过 sudo 执行上述命令。
使用docker run
命令后,默认情况下,当前终端会将 Docker 容器的输出打印到终端,并且容器在前台运行。这意味着如果你使用 docker run
启动一个容器,当前终端会一直保持连接状态,直到你手动停止容器或使用终端退出快捷键(通常是 Ctrl + C)停止容器运行。
如果你想让容器在后台运行,你可以添加 -d
或 --detach
标志。例如:
1bash
2docker run -d IMAGE_NAME
这样容器将会以守护进程方式在后台运行。
针对已经在前台运行的容器,如果你想切换到其他任务,可以使用 Ctrl + Z
将当前任务挂起,然后使用 bg
命令将其放到后台运行,或者使用 screen
或 tmux
等工具创建新的会话并管理后台任务。
另外,对于已经在后台运行的容器,你可以使用 docker attach
命令重新连接到容器的标准输入、输出和错误(STDIN/STDOUT/STDERR),例如:
1bash
2docker attach CONTAINER_ID
这样可以重新连接到容器的控制台。当然,也可以使用 docker exec 命令在容器中执行特定的命令,而不是直接进入控制台。
1bash
2docker exec -it CONTAINER_ID /bin/bash
这样可以在容器内执行 /bin/bash
命令(或者其他你想要执行的命令),从而获取一个交互式的终端。
要查看当前正在运行的容器,以及所有包括停止运行的容器,可以使用 Docker 的命令行工具。以下是一些常用的命令:
1bash
2docker ps
这个命令会列出当前正在运行的容器,并显示它们的一些基本信息,如容器 ID、名称、使用的镜像、启动时间等。
1bash
2docker ps -a
添加 -a
标志可以显示所有的容器,不仅包括当前正在运行的,还包括已经停止的容器。
1bash
2docker inspect CONTAINER_ID
使用 docker inspect
命令可以查看特定容器的详细信息,包括容器的配置、网络设置、挂载的卷等信息。替换 CONTAINER_ID
为你要查看容器的实际 ID。
1bash
2docker logs CONTAINER_ID
docker logs
命令用于查看容器的日志输出。你可以使用它来查看容器运行期间的输出信息。同样替换 CONTAINER_ID
为你要查看日志的容器 ID。
这些命令能够帮助你管理和监控当前正在运行和已经停止的容器,并获取容器的详细信息和日志输出。
要停止正在运行的容器,可以使用 docker stop` 命令。
1bash
2docker stop CONTAINER_ID_OR_NAME
将 CONTAINER_ID_OR_NAME 替换为你要停止的容器的 ID 或者名称。例如:
1bash
2docker stop my_container
如果你想要停止多个容器,可以在 docker stop
命令后面列出多个容器的名称或 ID:
1bash
2docker stop CONTAINER_1 CONTAINER_2 CONTAINER_3
有时候,容器可能不响应停止请求或者需要立即停止,可以添加 -t
或 --time
参数来设置停止容器的超时时间:
1bash
2docker stop -t 0 CONTAINER_ID_OR_NAME
这里的 -t 0
表示立即停止容器。请注意,强制停止容器可能会导致数据丢失或者其他问题,所以需要谨慎使用。
停止容器后,你可以使用 docker ps -a
命令检查容器的状态,确保容器已经停止运行。
当你停止 Docker 容器时,通常情况下,容器占用的端口会自动释放。停止容器后,其占用的网络资源,包括端口,会被释放并可供其他容器或应用程序使用。
Docker 的网络实现通常会在容器停止时释放容器占用的端口。然而,偶尔也可能存在一些情况,例如容器停止时发生异常、网络配置问题等情况下,端口不会立即释放。如果发现端口没有被释放,可以尝试以下步骤:
netstat
或 lsof
等命令来查看端口占用情况,然后手动释放。1bash
2sudo netstat -tulpn | grep LISTEN # 查看占用的端口及其进程信息
在大多数情况下,停止 Docker 容器会释放其占用的端口。如果遇到端口未被释放的问题,可以尝试以上方法来解决。
要删除特定的容器,可以使用 docker rm
命令。在删除容器之前,请确保你已经停止了该容器的运行。
1bash
2docker rm CONTAINER_ID_OR_NAME
将 CONTAINER_ID_OR_NAME
替换为你要删除的容器的 ID 或者名称。例如:
1bash
2docker rm my_container
如果你想要删除多个容器,可以在 docker rm
命令后面列出多个容器的名称或 ID:
1bash
2docker rm CONTAINER_1 CONTAINER_2 CONTAINER_3
有时候,某个容器可能正在运行中,可以添加 -f
或 --force
标志来强制删除容器:
1bash
2docker rm -f CONTAINER_ID_OR_NAME
请注意,在删除容器之前,确保你不再需要这些容器,并且容器已经停止运行。删除容器后,容器的数据将无法恢复。
要查看本地系统中的所有 Docker 镜像,可以使用以下命令:
1bash
2docker images
这将显示本地存储库中的所有镜像列表,包括它们的名称、标签、大小和创建时间等信息。
要删除本地系统中的 Docker 镜像,可以使用以下命令:
1bash
2docker rmi [镜像ID 或 镜像名称]
如果要删除单个镜像,可以通过其镜像ID或名称进行删除。例如:
1bash
2docker rmi ubuntu:latest
这将删除本地系统中名为 ubuntu
的最新标签版本的镜像。如果您知道要删除的特定镜像的ID,也可以使用该ID进行删除。
如果要删除多个镜像,可以在同一命令中提供多个镜像ID或名称。例如:
1bash
2docker rmi ubuntu:latest alpine:latest
这将删除本地系统中的 ubuntu
和 alpine
镜像的最新标签版本。
请注意,删除镜像是一个不可逆的操作,请谨慎操作,并确保您不再需要这些镜像。