如何使用Docker:创建第一个Docker容器

本教程介绍了Docker入门的基础知识。我假设您已经安装了Docker。本教程中的步骤适用于与Docker兼容的任何Linux发行版(CentOS,Ubuntu等)。

创建您的第一个Docker容器

Docker创建虚拟容器。Docker的容器系统非常高效,因为它可以与提交一起使用。这样可以节省空间,并允许您查看容器的更改。例如,如果将Apache安装在一个容器中,则可以创建一个名称为“ Installed Apache”的提交,以便您确切地知道发生了什么。

我们要做的第一件事是从存储库中提取信息。假设要在容器中安装Ubuntu,可以从存储库中拉Ubuntu:

docker pull ubuntu

请耐心等待,因为这可能需要一段时间。下载所有内容后,您可以使用以下操作系统创建容器:

docker run -i -t ubuntu /bin/bash

或使用Debian,例如:

docker run -i -t debian /bin/bash

如果找不到操作系统(尚未拉出),它将自动从Docker Hub中拉出。

实际上,您现在有了一个容器!您正在由Docker管理的精简容器中运行bash。尝试运行一些常见的Linux命令以了解环境。

当您键入exit退出容器并返回主操作系统时,所有更改都将消失。要将更改保存到容器,我们使用提交。

提交

创建Docker容器时,将自动生成其主机名。例如,当我创建一个新的Ubuntu容器时,我可能会得到主机名f7943e42aff0。这是Docker赋予您的容器的名称。

安装您想要的东西,并确保一切正常。然后退出您的Docker容器:

exit

我们现在需要承诺;否则,所有更改都将丢失。

docker commit -a "William E." -m "Installed Apache" f7943e42aff0 apachesnapshot

-a开关可用于正确确定谁编写了该提交(谁在容器中进行了更改)。-m是提交消息。该f7943e42aff0是我的容器的主机名。您的情况会有所不同,因为Docker会随机生成它们。apachesnapshot是图像的名称。

您可以在本地计算机上查看包含所有图像的列表。最新的位于顶部。

docker images

为了通过更改启动您的Docker容器,请运行:

docker run -t -i apachesnapshot /bin/bash

使用Dockerfile

Dockerfile可以用于使用已安装的应用程序制作映像。这样可以方便地启动容器,而不必运行特定命令。例如,如果要使用~/file.txt已创建的文件创建映像,则可以使用以下Dockerfile:

FROM ubuntu:14.04
MAINTAINER William E. <william@localhost>
RUN touch ~/file.txt

为了使用此Dockerfile创建Docker容器,请在本地计算机上为您的Dockerfile创建一个文件夹(我曾使用~/files)。将Dockerfile的内容放入名为的文件中Dockerfile。您现在可以通过运行以下命令来创建图像:

docker build -t="test" .

这将从您的Dockerfile脚本创建Docker映像。您现在可以运行容器。与命令中的test值相同。testdocker build

docker run -t -i test /bin/bash

当bash shell打开时,您将看到~/file.txt已经创建了。

这只是您可以使用Docker创建的强大环境的一种体验。Docker官方手册对这些主题进行了更深入的介绍。此时,您应该能够尝试运行现有的容器并开始对自己的容器进行映像。

由威廉·戴维·爱德华兹(William David Edwards)撰写

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息