代码改变世界

使用 Docker 构建和运行自己的镜像

2020-08-23 17:04  小伍2013  阅读(972)  评论(0编辑  收藏  举报

步骤

首先,从 GitHub 中克隆示例项目:

git clone https://github.com/dockersamples/node-bulletin-board
cd node-bulletin-board/bulletin-board-app

node-bulletin-board 项目是一个简单的应用程序,使用Node.js编写。我们使用它进行容器化。

构建镜像:

docker build --tag bulletinboard:1.0 .

从镜像中构建容器:

docker run --publish 8000:8080 --detach --name bb bulletinboard:1.0
  • --detach:在后台运行容器并打印出容器ID。
  • --publish:将主机的8000端口绑定到容器的8080端口。
  • --name:为容器分配一个命名。

访问 localhost:8000 查看部署结果。

删除容器:

docker rm --force bb
  • --force:删除正在运行的容器。

或者停止后再删除:

docker stop bb
docker rm bb

Dockerfile 说明

应用程序中包含了一个名为 Dockerfile 的文件。 Dockerfile 定义了如何为容器构建专用文件系统,还可以包含一些元数据,这些元数据描述了如何基于该镜像运行容器:

# 使用官方node镜像作为父镜像
FROM node:current-slim

# 设置工作目录,后续的所有操作将在该目录中执行
WORKDIR /usr/src/app

# 将 package.json 从主机中复制到当前(工作)目录
COPY package.json .

# 在镜像文件系统中运行命令
RUN npm install

# 通知 Docker 该容器在运行时监听的端口
EXPOSE 8080

# 在容器中运行指定命令
CMD [ "npm", "start" ]

# 将应用程序的其余代码从主机复制到镜像文件系统中
COPY . .