Ubuntu - Docker
Ubuntu - Docker 容器简介
Section titled “Ubuntu - Docker 容器简介”Docker 是一个强大的平台,用于在容器(Container)中开发、交付和运行应用程序。容器允许您将应用程序及其所有依赖项(库、系统工具、代码、运行时环境)打包成一个标准化的软件开发单元。这确保了您的应用程序在不同环境中一致运行。
Docker 的官方网站是 https://www.docker.com/
1. 在 Ubuntu 上安装 Docker
Section titled “1. 在 Ubuntu 上安装 Docker”虽然 Docker 在 Ubuntu 的默认软件源(APT repository)中有提供(docker.io 包),但通常建议从 Docker 官方的 APT 仓库安装 Docker Engine 以获取最新版本。然而,为了本入门教程的简洁性,我们将使用 docker.io 包。对于生产环境或高级用法,请参考官方 Docker 文档来安装 docker-ce。
步骤 1.1 − 更新您的软件包列表:
sudo apt update步骤 1.2 − 安装 docker.io 包:
sudo apt install -y docker.io-y 标志会自动确认安装。
步骤 1.3 − 验证 Docker 是否正在运行:
sudo systemctl status docker它应该显示 ‘active (running)‘。如果不是,启动并启用它:sudo systemctl start docker 和 sudo systemctl enable docker。
2. 无需 sudo 运行 Docker 命令(最佳实践)
Section titled “2. 无需 sudo 运行 Docker 命令(最佳实践)”默认情况下,Docker 命令需要 root 权限(使用 sudo)。要以非 root 用户身份运行 Docker 命令,请将您的用户添加到 docker 用户组(此组在 Docker 安装期间创建)。
步骤 2.1 − 将您的用户添加到 docker 组:
sudo usermod -aG docker ${USER}${USER} 是一个环境变量,会自动解析为您当前的用户名。
步骤 2.2 − 应用组更改。您需要注销并重新登录,或者在当前终端会话中运行以下命令:
newgrp docker之后,您应该能够无需 sudo 即可运行 Docker 命令。
3. 使用 Docker 镜像和容器
Section titled “3. 使用 Docker 镜像和容器”让我们拉取一个简单的镜像(例如 hello-world)并将其作为容器运行,以验证您的 Docker 设置。
步骤 3.1 − 从 Docker Hub(默认的公共注册表,Registry)拉取 hello-world 镜像:
docker pull hello-worldDocker 将下载镜像层(Image layers)。您将看到显示下载进度的输出。
步骤 3.2 − 列出已下载的镜像:
docker images您应该在列表中看到 hello-world,以及它的标签(Tag)、镜像 ID(Image ID)、创建时间和大小(Size)。
步骤 3.3 − 将 hello-world 镜像作为容器运行:
docker run hello-world此命令从 hello-world 镜像创建一个新容器,运行它,然后容器退出。输出应该显示 Docker 的一条消息,确认您的安装似乎工作正常。
示例:运行 CentOS 容器
Section titled “示例:运行 CentOS 容器”您可以将其他操作系统作为容器运行。让我们尝试 CentOS。
步骤 4.1 − 拉取最新的 CentOS 镜像:
docker pull centos:latest步骤 4.2 − 在一个新的 CentOS 容器内运行一个交互式终端会话:
docker run -it centos /bin/bash-it使会话具有交互性 (-i) 并分配一个伪终端(Pseudo-TTY)(-t)。centos是镜像名称。/bin/bash是在容器内运行的命令(启动一个 Bash shell)。
您的终端提示符会改变,表明您现在位于 CentOS 容器内部(例如,[root@container_id /]#)。您可以在这里运行 CentOS 命令(例如,cat /etc/os-release)。输入 exit 以离开容器并返回到您的 Ubuntu shell。
Docker 为应用程序隔离、可重现环境、微服务等提供了强大的工作流。关键概念包括:
- 镜像(Images):用于创建容器的只读模板(例如,
ubuntu、nginx、python)。 - 容器(Containers):镜像的可运行实例。它们是隔离的环境。
- Docker Hub:一个用于存储和共享 Docker 镜像的公共注册表(Registry)。
- Dockerfile:一个包含构建自定义 Docker 镜像指令的文本文件。
这只是一个简短的介绍。Docker 的世界非常广阔,为现代软件开发和部署提供了无限可能。