https://github.com/srect/docker
用Docker部署一个Node应用
https://github.com/srect/docker
centos7 docker koa2 nodejs
Last synced: about 2 months ago
JSON representation
用Docker部署一个Node应用
- Host: GitHub
- URL: https://github.com/srect/docker
- Owner: sRect
- Created: 2019-08-06T06:40:04.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-06T20:53:37.000Z (over 3 years ago)
- Last Synced: 2025-01-02T15:45:42.266Z (over 1 year ago)
- Topics: centos7, docker, koa2, nodejs
- Language: JavaScript
- Size: 27.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 用Docker部署一个Node应用
___


 
> 1. 制作自己的Docker容器
> 2. 用Docker部署
## 什么是Docker?
打个比方:你如果想玩英雄联盟中骚气的亚索,你首先得有这个英雄(Docker的镜像),然后你得花金币去英雄商店(Docker的仓库)买,接着进游戏就会看到一个半蹲的发型飘逸的剑客(Docker的容器)
Docker由仓库(Repository)、镜像(Image)、容器(Container)组成。
## 安装Docker
1. 更新yum包
```bash
yum update
```
2. 设置yum源
```bash
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
```
3. 可以查看所有仓库中所有docker版本,并选择特定版本安装
```bash
yum list docker-ce --showduplicates | sort -r
```
4. 选择版本进行安装
```bash
yum install docker-ce-17.12.1.ce
```
5. 启动Docker
```bash
systemctl start docker
```
6. 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
```bash
docker version
```
## 制作自己的 Docker 容器
1. Dockerfile文件
```
FROM node:10.15.0
# 将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。
COPY . /app
# 指定接下来的工作路径为/app
WORKDIR /app
RUN npm install
# 将容器 3000 端口暴露出来, 允许外部连接这个端口
EXPOSE 3000
CMD ["npm", "start"]
```
2. 创建image
```bash
docker image build -t koa-demo:0.0.1 .
```
-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest
最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点
3. 列出所有镜像
```bash
docker image ls
```
可以看到我们刚才创建的koa-demo镜像了
4. 启动容器
```bash
docker container run -p 8000:3000 -it koa-demo:0.0.1
```
-p参数:容器的 3000 端口映射到本机的 8000 端口。
-it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器
koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)
5. 浏览器访问
```
localhost:8000
```
## 其它命令
```bash
# 在仓库下载镜像
$ docker image pull library/hello-world
# 列出所有镜像
$ docker image ls
$ docker image ls --all
# 删除 image 文件
$ docker image rm [imageName]
# 列出本机正在运行的容器
$ docker container ls
# 列出本机所有容器,包括终止运行的容器
$ docker container ls --all
# 终止某容器
$ docker container kill [containID]
# 删除某容器,释放磁盘空间
$ docker container rm [containerID]
```
## 参考资料
1. [Docker 入门教程](http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html)
2. [Centos7下安装Docker(详细的新手装逼教程)](https://www.cnblogs.com/qgc1995/p/9553572.html)
3. [Get Docker Engine - Community for CentOS](https://docs.docker.com/install/linux/docker-ce/centos/)