写在前面
- 今天花了一下午时间学习了利用容器化docker部署springboot项目,其中涉及docker创建mysql容器以及redis容器。阅读本文,你大概需要花费12分钟左右的时间。
- 版本控制:
CentOs7.6,SpringBoot2.2.0,mysql5.7,redis3.2,docker1.13.1
一.Docker安装mysql
- 查看mysql镜像包
docker search mysql
选择一个mysql版本并安装
docker pull mysql:5.7
- 查看docker容器命令:
docker images
,你会发现mysql5.7已经安装完毕。 运行myql容器
docker run -p 3306:3306 -d --name mymysql -v /docker/mysql/data:/usr/share/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
数据一定要从宿主机中映射,不然每次重启mysql容器时,其数据都没有(因为都从镜像来启动的)
docker操作mysql
- 进入容器内部
docker exec -it mymysql bash
mysql -uroot -p
输入密码连接mysql进行操作。
- 进入容器内部
二.Docker安装redis(类似安装mysql)
- 安装redis镜像
docker pull redis:3.2
运行redis容器
docker run -p 6379:6379 -d --name myredis -v /docker/redis/data:/data redis:3.2 redis-server --appendonly yes
- docker操作redis
docker exec -it myredis redis-cli
三.部署springboot项目
- springboot项目打包为jar包,上传到服务器。
docker创建项目镜像以及容器,并启动容器
注意:项目中的端口号、mysql配置密码等应当与服务器上一致
1. 打包springboot项目
这里就不详细说了,请参考:
2. docker生成项目镜像和容器
- 安装docker
yum -y install docker
- 启动docker
service docker start
- 安装JDK8镜像
docker pull java:8
创建Dockerfile文件生成镜像
sudo vim Dockerfile
创建镜像文件docker默认必须是Dockerfile,路径任意
FROM java:8 COPY springcloud-2.0-eureka-server.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"]
- 生成镜像
docker build -t test
(test为任意名字) - 创建容器
docker create --name test -t -p 8010:8010 test
- 启动容器
docker start test
- 查看启动日志
docker logs -f test
最后
参考链接
docker常用命令
- 查看docker镜像
docker images
- 查看docker容器
docker ps -a
- 停止所有docker容器 docker rm \`docker ps -a\`
- 启动docker
systemctl start docker
- 停止docker
systemctl stop docker
- 重启docker
docker restart
- 开启某docker容器
docker start test
- 删除某docker容器
docker rm test_id
- 删除某docker镜像
docker rmi test_id
- 其他请看docker远程仓库网站~~~~
必须停止容器后才能删除容器,删除容器后才能删除镜像
- 查看docker镜像
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。