Docker - Ubuntu设置



Ubuntu是一个非常流行的操作系统,基于Linux,以其稳定性、安全措施和充满热情的庞大社区支持而闻名。Ubuntu拥有大量的应用程序,范围从服务器管理和桌面计算到嵌入式系统/物联网。

Docker是一个开源平台,用于将应用程序及其依赖项容器化到称为容器的可管理单元中。这些容器保证一致的环境、可移植性、隔离性,并使部署和应用程序管理变得容易得多。

在本章中,让我们学习将Ubuntu操作系统Docker化到容器中的各种方法。

Docker化Ubuntu的先决条件

在开始Docker化Ubuntu之前,请确保您具备以下先决条件。

  • 已安装Docker − 如果尚未安装,您可以从https://www.docker.com/下载并安装适用于您的操作系统的Docker。
  • Ubuntu镜像 − 我们将使用Docker镜像来容器化Ubuntu。Docker Hub注册表(https://hub.docker.com/)上有大量的官方Ubuntu镜像。

方法1:拉取Ubuntu镜像并运行Ubuntu容器

让我们了解如何拉取Ubuntu镜像并运行Ubuntu容器−

拉取Docker镜像

我们可以直接从Docker Hub注册表拉取预构建的Ubuntu镜像。我们可以使用docker pull命令来拉取镜像。

例如,我们可以使用以下命令来拉取最新的Ubuntu镜像:

$ docker pull ubuntu:latest
Pulling the Docker Image 1

您可以通过列出本地机器上的所有Docker镜像来验证镜像是否已成功拉取。

$ docker images
Pulling the Docker Image 2

运行Ubuntu容器

现在我们已经拉取了Ubuntu Docker镜像,我们可以使用docker run命令使用此镜像启动一个容器。

我们可以使用诸如容器名称(--name)、是否在后台运行(-d)以及是否需要公开任何必要的端口(-p)之类的选项。

$ docker run -it --name my-ubuntu-container ubuntu:latest
Running the Ubuntu Container

访问Ubuntu Shell

我们在命令中使用的-it标志允许我们通过使其交互并附加终端来访问容器的bash。这样,我们可以直接访问容器中的Ubuntu shell。

方法2:创建Dockerfile并构建自定义镜像

让我们了解如何创建Dockerfile并构建自定义镜像−

创建Dockerfile

Dockerfile只是一个文本文档,其中包含用于构建自定义Docker镜像的所有指令。它包含定义基础镜像、要安装的软件包和要运行的命令的指令。

创建一个名为Dockerfile的文件,并将以下指令粘贴到其中。

FROM ubuntu:latest

# Install packages (replace with your desired packages)

RUN apt-get update && apt-get install -y nginx

# Expose a port (if necessary)

EXPOSE 80

# Command to run when the container starts

CMD ["nginx", "-g", "daemon off;"]

构建Docker镜像

接下来,导航到创建Dockerfile的目录,打开终端,并使用docker build命令根据Dockerfile创建镜像。

$ docker build -t my-ubuntu-image .
Building the Docker Image 1

让我们通过列出所有镜像来验证镜像。

$ docker images
Building the Docker Image 2

运行容器

现在我们的镜像已准备就绪,让我们根据此镜像创建一个容器。

$ docker run -itd --name my-ubuntu-container my-ubuntu-image

这将在分离(后台)模式下启动容器。

Running the Container Ubuntu 1

如果我们使用命令“docker container ls”列出所有容器,我们可以看到我们的容器正在运行。

让我们使用以下命令将shell附加到此容器。

$ docker exec -it my-ubuntu-container /bin/bash
Running the Container Ubuntu 2

方法3:使用Docker Compose

Docker Compose是一个非常有用且广泛使用的工具,您可以使用它来定义和运行多容器Docker应用程序。借助它,您可以简化管理多个容器的过程,这对于复杂的应用程序通常是必需的。

Docker Compose文件

创建一个名为docker-compose.yml的文件,并将以下内容粘贴进去。

version: '3.8'

services:
   ubuntu1:
      image: ubuntu:latest
      command: /bin/bash
   ubuntu2:
      image: ubuntu:latest
      command: /bin/bash
   ubuntu3:
      image: ubuntu:latest
      command: /bin/bash

说明

  • version − '3.8':指定Docker Compose版本。
  • services − 定义要创建的服务(容器)。
  • ubuntu1, ubuntu2, ubuntu3 − 这些是各个容器的名称。
  • image − ubuntu:latest:将每个容器的基础镜像设置为最新的Ubuntu镜像。
  • command − bash:指定在容器内运行的命令。在本例中,它是一个Bash shell。

构建和运行

让我们使用以下命令来构建镜像并在后台运行容器。

$ docker-compose up -d
Build Image and Run Container 1

让我们列出所有正在运行的容器以进行验证。

$ docker container ls -a
Build Image and Run Container 2

结论

通过Docker化Ubuntu,您可以为基于Ubuntu的应用程序创建隔离且可移植的环境。在本章中,我们了解了创建Ubuntu容器的不同方法,无论是使用Dockerfile、Docker Compose还是直接拉取预构建的镜像。

Docker带来了一个强大的工具集,用于管理和部署您的应用程序。您可以轻松地按照本教程中的步骤来Docker化您的Ubuntu应用程序,并利用容器化的优势。

关于Docker化Ubuntu的常见问题

在本节中,我们收集了一组关于Docker化Ubuntu的常见问题及其答案。

1. 如何在Docker化的Ubuntu实例中安装其他软件包?

要在Ubuntu中安装软件包,我们可以使用容器内设置的apt包管理器。将相关的包安装命令包含在您的Dockerfile中,或者从容器内以交互方式运行它们。确保这些包与您的基础镜像中使用的Ubuntu版本兼容。

2. 如何为Docker化的Ubuntu实例配置网络?

我们可以使用Docker的网络功能或通过配置Ubuntu容器本身的网络来配置Ubuntu容器中的网络。您可以考虑使用网络别名、端口映射或连接到外部网络。

3. 如何在Docker化的Ubuntu实例中持久化数据?

您可以使用Docker卷来持久化Ubuntu容器中的数据。我们可以将卷挂载到容器内的目录,这些目录可以存储在容器停止时要保留的数据。您还可以根据您的要求配置卷以确保数据持久性。

广告
© . All rights reserved.