工作第三年, 最近接触到了目前比较流行的开发自运维(devOps)模式, 我们知道docker是当前最流行的容器虚拟化技术。列举近期使用docker部署服务器遇到的小坑,方便后续复习。
一. docker容器镜像映射问题
MySQL映射配置
使用docker部署MySQL的时候,必须指定映射路径,否则在服务器重启的时候,将会造成数据丢失。其映射配置非常简单,如下:
只要在docker-compose.yml文件中,添加如下映射配置, /db代表本地磁盘地址, /var/lib/mysql是docker容器中的地址。
volumes:
- ./db:/var/lib/mysql
如何进入docker容器?
如不熟悉docker命令,可先阅读我总结的这篇文章。
1. docker ps
#找到对应程序的docker id或则name。
2. # 进入当前docker启动的应用中使用命令(下面的id和name均为1中的变量)
docker exec -it id bash 或 docker exec -it name bash
3. ls 查看当前的文件夹,即为当前docker中创建的文件夹, 找到自己服务的文件夹做映射。
IO流输出文件保存映射配置
使用HttpServletResponse输出文件流, 同样还是保存在了docker容器中, 如果没有做文件映射,在重启服务器的时候依然会造成文件丢失的问题。所以需要做文件映射,操作方法和上述一样,文件目录对应自己创建的目录即可。