


点击上方蓝字关注我们





Docker 是一种开源的应用容器引擎,可以将应用程序及其依赖项打包到一个轻量级、可移植的容器中,然后在任何 Docker 环境中运行。详细流程:
1. 开发应用并制作镜像
开发者在开发环境中创建应用程序并将其打包成 Docker 镜像。
1.1 编写应用程序代码


假设开发者正在创建一个简单的 Node.js 应用程序。开发者首先需要编写应用程序代码,并将其保存到项目目录中。例如,创建一个 app.js 文件,其中包含以下代码:
const http = require('http');const hostname = '127.0.0.1';const port = 3000;const server = http.createServer((req, res) => {res.statusCode = 200;res.setHeader('Content-Type', 'text/plain');res.end('Hello World\n');});server.listen(port, hostname, () => {console.log(`Server running at http://${hostname}:${port}/`);});
1.2 创建 Dockerfile


开发者创建一个 Dockerfile 文件来定义如何构建镜像。Dockerfile 是一个包含一系列指令的文本文件,用于描述如何构建 Docker 镜像。对于上述 Node.js 应用,Dockerfile 如下:
使用官方的 Node.js 镜像作为基础镜像FROM node:14创建工作目录WORKDIR /usr/src/app复制 package.json 和 package-lock.json 文件COPY package*.json ./安装应用依赖RUN npm install复制应用代码COPY . .暴露应用程序运行的端口EXPOSE 3000定义启动容器时运行的命令CMD [ "node", "app.js" ]
1.3 构建 Docker 镜像


使用 Docker CLI 命令,开发者可以构建 Docker 镜像。项目目录包含 Dockerfile 和应用代码,可以运行以下命令:
docker build -t my-node-app .
这将创建一个名为 my-node-app 的 Docker 镜像。
2. 发送上传镜像命令
在开发者构建好镜像后,接下来需要将镜像上传到镜像仓库。镜像仓库可以是 Docker Hub(Docker 官方提供的公共镜像仓库),也可以是私有镜像仓库。
2.1 登录镜像仓库


开发者需要登录到镜像仓库。例如,要登录到 Docker Hub,可以运行以下命令并输入 Docker Hub 的用户名和密码:
docker login
2.2 给镜像打标签


为了上传镜像,开发者需要给镜像打标签,指定目标仓库和镜像名。例如,将 my-node-app 镜像打标签为 username/my-node-app(其中 username 替换为 Docker Hub 用户名):
docker tag my-node-app username/my-node-app
2.3 上传镜像到镜像仓库


使用 docker push 命令将镜像上传到镜像仓库:
docker push username/my-node-app
这会将 my-node-app 镜像上传到 Docker Hub 上的 username 名下。
3. 发送运行镜像命令
在生产环境中,运维人员可以从镜像仓库中拉取镜像并运行容器。
3.1 Docker 从镜像仓库拉取镜像


需要从镜像仓库中拉取镜像。例如,从 Docker Hub 上拉取 username/my-node-app 镜像:
docker pull username/my-node-app
3.2 Docker 基于镜像运行容器


拉取镜像后,可以使用 docker run 命令基于镜像运行容器。例如,运行一个基于 username/my-node-app 镜像的容器:
docker run -d -p 3000:3000 --name my-running-app username/my-node-app
-d:在后台运行容器。
-p 3000:3000:将主机的 3000 端口映射到容器的 3000 端口。
--name my-running-app:为容器指定一个名称。
username/my-node-app:指定要运行的镜像。
运行上述命令后,Node.js 应用程序将运行在 Docker 容器中,并且可以通过访问主机的 http://127.0.0.1:3000 来访问应用程序。
举例
假设某公司开发了一款 web 应用,并使用上述步骤将其打包成 Docker 镜像并上传到私有镜像仓库。运维人员在生产环境中通过以下步骤部署应用:
登录到私有镜像仓库:
docker login registry.example.com
从镜像仓库中拉取最新版本的镜像:
docker pull registry.example.com/my-web-app:latest
运行 Docker 容器:
docker run -d -p 8080:80 --name web-app-prod registry.example.com/my-web-app:latest
通过 Docker,开发者可以轻松地将应用程序及其依赖项打包成一个独立的容器镜像。这个镜像可以在任何安装了 Docker 的环境中运行,从而保证了应用程序的可移植性和一致性。无论是在开发环境还是生产环境,Docker 都能够提供一个稳定、可靠的运行环境,大大简化了应用程序的部署流程。在工作环境中,使用 Docker 还可以结合 CI/CD 工具(如 Jenkins、GitLab CI)来实现自动化构建和部署,进一步提高开发和运维的效率。通过合理利用 Docker 的特性和优势,企业可以实现敏捷开发、持续交付和快速部署,从而在激烈的市场竞争中保持领先地位。
非常感谢您读到这里!如果您觉得这篇文章对您有帮助,请不要忘记关注公众号。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库)技术,以及更多实用的技能干货。
点击页面右上角的“关注”按钮,不错过任何精彩内容!

扫码获取联系方式







