Docker 入门
介绍
容器化可以定义为操作系统 (OS) 级别的虚拟化,允许部署和运行分布式应用程序,而无需每个应用程序都使用整个虚拟机 (VM)。这在计算资源方面很经济,因为多个独立的应用程序可以在单个主机上运行。容器化在开发团队中很受欢迎,因为无论主机基础架构如何,容器化应用程序总是以相同的方式运行。
Docker是一款在操作系统 (OS) 级别提供硬件虚拟化的产品。此功能允许开发人员打包软件及其依赖项,以便将其作为容器发布。
镜像是一个软件包,其中包含源代码以及软件运行时所需的所有依赖项。在 Docker 中,镜像由build命令生成。
容器是镜像的运行实例。在 Docker 中,使用run命令执行容器。
本指南向您介绍 Docker 以及如何使用它来打包和运行应用程序。它假设您熟悉LINUX环境并能轻松地与 Linux bash环境交互。
Docker
Docker 还提供了一项名为DockerHub的服务,允许开发人员共享和管理容器。这可以称为容器镜像的“GitHub”,因为它与代码存储库平台有一些相似之处,例如通过推送命令上传镜像,通过拉取命令下载镜像。
如果开发人员希望按照一定的依赖顺序运行多个容器,Docker 会提供一项名为docker-compose的服务。该工具用于定义和运行多容器 Docker 应用程序。一个例子是在 Postgres 数据库上的 NGINX 代理后面运行的 Django 应用程序。在这个例子中,有 Postgres 容器、Django 应用容器和 NGINX 容器。
安装和设置
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
基本 Docker 命令
以下是常用 Docker 命令的列表。更多命令及其功能和选项可在Docker 官方网站上找到。
docker --version:用于识别主机系统上当前安装的 Docker 版本
docker ps:用于列出所有正在运行的容器
docker images:用于列出本地存储的图像
docker login:用于登录你的 Dockerhub 账户
docker push <username/imagename>:用于将图像上传到远程 Dockerhub 存储库
docker pull <imagename>:用于从 Dockerhub 下载镜像
docker build <path/to/docker/file>:用于从指定的Docker文件生成镜像
docker run -it -d <imagename>:用于从构建的镜像创建容器
docker stop <container id>:用于停止定义容器的运行
docker rm <container id>:用于删除已停止的容器
docker rmi <imageid>:用于从本地存储中删除指定的图像ID。
示例脚本
为了演示 Docker 的运行,请在 Docker 中运行示例Flask脚本。
from flask import Flask
server = Flask(__name__)
@server.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
server.run(host='0.0.0.0')
将上述代码块复制到文件中并将其命名为app.py。
下一步是创建 Dockerfile 。文件内的逻辑应如下所示。
设置基础映像
设置工作目录
将源代码复制到Docker环境
安装依赖项
运行程序
复制以下代码并将其保存在名为Dockerfile的文件中。
# set base image (host OS)
FROM python:3.8
# set the working directory in the container
WORKDIR /code
COPY . .
RUN pip install flask
# command to run on container start
CMD [ "python", "./app.py" ]
设置好两个文件后,您就可以构建并运行映像了。要构建映像,请运行以下命令:
docker build -t myimage .
构建 Docker 镜像后,就可以运行它了。由于这是一个在特定端口上运行的 Flask 应用程序,因此请通过 ports(-p) 标志提供端口号。
docker run -p 5000:5000 myimage
该应用程序现在在本地主机地址https://0.0.0.0:5000上运行。
作为一项挑战,将新创建的映像推送到 Dockerhub 存储库,通过另一台计算机上的 pull 命令下载它,然后运行该映像。您会注意到,您不需要设置说明。您只需要安装 Docker。
结论
使用 Docker 进行容器化可简化部署过程。这项技能对于 DevOps、团队负责人、质量保证 (QA) 或测试工程师等职位非常有用。在团队管理中,团队负责人使用 Docker 脚本来设置项目,这可确保新成员和入职团队成员花更少的时间进行设置,而花更多时间进行实际开发。
如果不仔细管理,Docker 镜像可能会变得异常大。要管理此问题,请详细了解精简基础镜像和dockerignore的使用。
为了进一步理解本指南,请了解有关docker-compose、Docker Swarm和Kubernetes 的更多信息,以用于多容器应用程序、编排和管理。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~