首先通过git clone
命令在本地 clone 好一个 node app。
1 | git clone https://github.com/ericwdq/atlas-app.git |
然后准备为 App 创建一个 Docker 镜像,最后再将创建的镜像运作在一个容器中。
Docker 可以把具有所有依赖关系的 App 打包到一个标准化单元的容器用于软件开发。 容器是 Linux 中基础概念,镜像就是运行在容器中的应用程序。
运行 App 在 Docker 上
- 创建 Dockerfile 文件在 App 的根目录
1 | FROM node:8 |
- 创建 dockerignore 文件在 App 的根目录
1 | node_modules |
- 构建镜像
1 | docker build -t eric/atlas-app . |
上面的 .
代表当前目录
- 查看 docker 镜像列表
1 | docker images |
REPOSITORY TAG IMAGE ID CREATED SIZE eric/atlas-app latest d6e01bdfc655 40 minutes ago 1.24GB
- 运行容器
1 | docker run -p 8888:6075 -d -it eric/atlas-app |
上面的示例,Docker 将映射容器中的 6075 端口到 8888 你的机器的端口上,所以你可以访问 8888 端口去测试 app。当然你也可以使用的相同的端口转发。
- 获取容器的 ID
1 | docker ps |
- 打印 app 的日志
1 | docker logs <container id> |
测试访问 app url
http://localhost:8888执行容器中的 bash
1 | docker exec -it <container id> /bin/bash |
- 删除容器
1 | docker rm --force <container id> |
- 删除镜像
1 | docker rmi image <image id> |
参考资料:
🔗 Dockerizing a Node.js web app
下一步准备尝试使用 docker compose 多容器控制和自动化。 😊