3

写在前面

  • 今天花了一下午时间学习了利用容器化docker部署springboot项目,其中涉及docker创建mysql容器以及redis容器。阅读本文,你大概需要花费12分钟左右的时间。
  • 版本控制:
    CentOs7.6,SpringBoot2.2.0,mysql5.7,redis3.2,docker1.13.1

一.Docker安装mysql

  1. 查看mysql镜像包 docker search mysql
  2. 选择一个mysql版本并安装

    docker pull mysql:5.7
  3. 查看docker容器命令:docker images ,你会发现mysql5.7已经安装完毕。
  4. 运行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容器时,其数据都没有(因为都从镜像来启动的)

  5. docker操作mysql

    1. 进入容器内部 docker exec -it mymysql bash
    2. mysql -uroot -p 输入密码连接mysql进行操作。

二.Docker安装redis(类似安装mysql)

  1. 安装redis镜像 docker pull redis:3.2
  2. 运行redis容器

    docker run -p 6379:6379 -d --name myredis -v /docker/redis/data:/data redis:3.2 redis-server --appendonly yes
  3. docker操作redis docker exec -it myredis redis-cli

三.部署springboot项目

  • springboot项目打包为jar包,上传到服务器。
  • docker创建项目镜像以及容器,并启动容器

    注意:项目中的端口号、mysql配置密码等应当与服务器上一致
1. 打包springboot项目

这里就不详细说了,请参考:

2. docker生成项目镜像和容器
  1. 安装docker yum -y install docker
  2. 启动docker service docker start
  3. 安装JDK8镜像 docker pull java:8
  4. 创建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"]
  5. 生成镜像 docker build -t test (test为任意名字)
  6. 创建容器 docker create --name test -t -p 8010:8010 test
  7. 启动容器 docker start test
  8. 查看启动日志 docker logs -f test

最后

  1. 参考链接

  2. 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远程仓库网站~~~~
      必须停止容器后才能删除容器,删除容器后才能删除镜像

邓奔成
6 声望4 粉丝