# Docker使用
## 将要拷贝进入容器的内容置于和Dockerfile同一文件夹内
## 下载free_node_base:v2镜像
## 1.Dockerfile
1.1 将web和服务都拷进容器指定位置里
服务:/home/workspace/service/
web:/home/workspace/web/
1.2 修改http.conf(nginx的配置文件)
1.3 执行 `docker build -t ${镜像名}:${tag}`
## 2.compose.yml
2.1 端口问题:找一个宿主机(服务器)没被占用的端口映射到容器80上
2.2 修改command中的指令,主要是有关于启动项目那部分
## 3.宿主机
3.1 nginx: 在宿主机(服务器)的nginx上 http代码块中 设置
> `upstream ${名称} {
server 127.17.0.1:${容器暴露的端口};
}`
随后再添加该项目向docker转发的设置
> `location ${前缀} {
proxy_pass http://haocai;
}
`
## 4.部署
4.1 现在自己机器上(或者有docker的机器上)执行Dockerfile,生成镜像.
如果不是在服务器上,则:
将镜像保存为文件
`docker save -o FILE_NAME(.tar/.tar.gz) IMAGE_NAME:TAG`
扔到服务器上,加载
`docker load -i FILE_NAME`
再运行compose.yml
`docker compose up -d`
## 5.更新
5.1 服务更新:
1. 如果没把握,那就备份下相关文件(是直接在容器里备份也行,拷出来备份也行)
2. 如果没有新加依赖, 那就把打包的内容直接拷进容器里服务位置即可; 如果更新了依赖.那就得把依赖也重新拷进去.
3. 进入容器,重启服务
5.2 web更新
1. 同5.1的第一项,备份问题
2. 直接拷进去就行,不涉及依赖的问题