欢迎!我们很高兴你想学习Docker。 本页面包含了如何一步一步的开始使用Docker的说明。在本教程中, 你将学习如何
- 构建和运行一个镜像作为容器
- 分享镜像用Docker Hub
- 部署Docker应用用多个容器和一个数据库
- 运行应用用Docker Compose
此外,你将学习关于构建镜像的最佳实践,包括如何扫描你的镜像安全漏洞。 如果你正在寻找如何使用你最喜欢的语言将应用程序容器化的信息,请参阅Language-specific getting started guides。
下载并安装Docker
本教程假设你现在已在你的机器上安装了当前版本的Docker。如果你没有安装Docker, 选择你喜欢的操作系统下载Docker:
Docker桌面版的安装说明,查看Install Docker Desktop on Mac和Install Docker Desktop on Windows。
开始教程
如果你已经运行命令开始来学习本教程,恭喜你!如果没有,打开命令提示符或者bash窗口,并运行以下命令:
$ docker run -d -p 80:80 docker/getting-started
你将注意到一些标识被使用。下面时他们的更多信息:
-d-运行容器以分离模式(后台运行)-p 80:80-映射主机的80端口到容器的80端口docker/getting-started- 镜像使用
Tip
你可以组合单个自负来缩短完整的命令,例如,上面的命令可以写成:
$ docker run -dp 80:80 docker/getting-started
Docker 面板
在深入讨论之前,我们想强调下Docker仪表盘,它可以让你快速查看机器上运行的容器。Docker 仪表盘可用于Mac和Windows。它使您可以快速访问容器日志,让您在容器中获得一个shell, 让您轻松的管理容器的生命周期(停止、删除等。)。 要访问仪表盘, 请遵循Docker Desktop。如果您现在打开仪表盘,您将看到本教程正在运行!容器名(下面的jolly_bouman)是随检创建的名称。所以,您将可能会有一个不同的名字。
什么是容器
现在你已经运行一个容器,什么是容器?简单的说,容器是沙箱进程在你的机器与主机所有其他进程隔离的。这种隔离利用了kernel namespaces and ccgroup,这些特性存在于Linux很长时间了。Docker致力于这些功能易于使用。总结一下,容器:
- 是一个可运行镜像的实例。您可以创建、启动、停止、移动或删除容器使用DockerAPI或CLI。
- 可运行在本地机、虚拟机或部署到云。
- 是可移植的(可以运行在任何操作系统上)。
- 容器上互相隔离的并且运行各自的软件、二进制文件和配置。
从头开始创建容器
如果你想看容器如何是从零开始构建,来自Aqua Security的Liz Rice有一个精彩的演讲,她在Go中从零开始构建了一个容器。虽然演讲没有讨论网络、文件系统的使用镜像和其他高级主题,但它非常深入探讨是如何工作的。
什么是容器镜像?
当运行一个容器,它使用隔离的文件系统。这个自定义的文件系统上由容器镜像提供的。由于镜像包含容器的文件系统,它必须包含应用程序运行的任何东西-所有依赖项,配置、脚本、二进制文件等。镜像还包含容器的其他配置项,例如环境变量,要运行的默认命令和其他元数据。 我们将在后面深入地研究,涵盖主题如分层、最佳实践等。
info 如果你熟悉chroot,可以将容器看作chroot的扩展版本。文件系统只是来自镜像。但是,容器添加了额外的隔离,对简单使用的chroot是不可用的。
CLI 参考
参考下面的主题文档,对于更好的使用的所有的CLI命令:
备注
受限于个人能力,可能翻译的不是很准确,仅供学习使用