1.打包

将项目打jar包并传到服务器的一个文件夹中,我的是/opt/docker,注意项目中的mysql配置的IP是服务器公网的ip地址

#数据源设置
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://121.199.74.249:1008/blog?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver server.port=8888

2.在同一文件夹中编写Dockerfile

touch Dockerfile
# 基础镜像使用java
FROM java:8
EXPOSE 8888
# 作者
MAINTAINER tyy<1057286890@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
#在容器中创建挂载点,可以多个
VOLUME /tmp
# 就是配置文件中的日志文件夹
VOLUME /logfile
# 将jar包添加到容器
ADD tyyblog.jar blog.jar
# 运行jar包
RUN sh -c 'touch /blog.jar '
ENTRYPOINT ["sh","-c","java -jar /blog.jar "]

3.build镜像

docker build -t blog .

现在就有名字为blog的镜像

4.需要在仓库拉一个mysql的镜像

docker pull mysql:8.0

5.先创建启动mysql的容器

docker run -p 3306:3306 --name mysql1 -v /opt/mysqldata/conf:/etc/mysql/conf.d -v /opt/docker/mysqldata/logs:/logs -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=*** -d -it mysql:8.0

修改端口号

命令说明
mysql-test: 容器名
/etc/mysql/my.cnf:容器中 my.cnf路径
/root:my.cnf在宿主机保存路径 docker cp mysql-test:/etc/mysql/my.cnf /opt/mysql
粘回去
docker cp /opt/mysql/my.cnf mysql:/etc/mysql/ docker exec -it mysql /bin/bash

意思为

#--restart=always    当docker重启时,容器也重启
# 容器终止运行后自动删除容器文件
# --rm
# 主机端口映射到容器端口
#-p 3306:3306
# 给容器起别名(非常重要,项目中的数据库地址需要和别名一致)
#--name mysql1
# 把主机的配置文件映射到容器的配置文件
#-v /opt/docker/mysqldata/conf:/etc/mysql/conf.d
# 把主机的日志映射到容器的日志
#-v /opt/docker/mysqldata/logs:/logs
# 把主机的数据映射到容器(每次重启容器不用担心数据被清空了)
#-v /var/lib/mysql:/var/lib/mysql
# 数据库密码
#-e MYSQL_ROOT_PASSWORD=root
# 后台启动

6.创建blog的镜像

docker run -itd --name blog1 -p 8888:8888 --link mysql1:blog blog

意思是

# 容器终止运行后自动删除容器文件
#--rm
# 后台启动
#-itd
# 主机端口映射到容器端口
#-p 8888:8888
# 为容器起别名
#--name blog1
# 连接提供mysql服务的容器,冒号后面是别名,别名应该和代码中的数据库地址一致(这点真的很重要)
#--link mysql1:blog
# 由哪个镜像生成的
#blog

7.就可以访问了

http://121.199.74.249:8888/

最新文章

  1. 实验二 用C语言表示进程的调度
  2. Java你可能不知道的事系列(1)
  3. 烂泥:U盘安装Centos6.5
  4. repcached的安装练习
  5. php中的日期
  6. MYSQL触发器的NEW和OLD的一个小问题
  7. incredibuild agent service is not running
  8. 解决只读时ios下input光标问题
  9. C++设计模式——中介者模式
  10. 软件工程实践助教每周小结 &lt; 福州大学 | 傅明建 &gt;
  11. 重启虚拟机后dhclient进程未运行解决办法
  12. Python可迭代对象中的添加和删除(add,append,pop,remove,insert)
  13. C语言字符串读入函数笔记
  14. Android中AsyncTask的使用
  15. 探索guava(一)——前置条件Preconditions类
  16. 学习windows编程 day4 之 自定义映射
  17. Mysql 数据库意向锁意义
  18. 为了显示此页面,Firefox 必须发送将重复此前动作的数据(例如搜索或者下订单)
  19. node版本查看管理工具
  20. 【洛谷】【单调栈】P1823 音乐会的等待

热门文章

  1. MySQL锁详细讲解
  2. spring boot:用dynamic-datasource-spring-boot-starter配置多数据源访问seata(seata 1.3.0 / spring boot 2.3.3)
  3. linux(centos8):jmeter5.3并发测试实例(参数在范围内随机取值)
  4. IDEA提示类注释的wrong tag警告的解决办法
  5. chrome浏览器中调试窗口位置修改
  6. 老板,来五道misc
  7. 校招“避雷针”——GitHub 热点速览 Vol.43
  8. java并发编程与多线程基础学习一
  9. 在VirtualBox中调整Raspbian分辨率
  10. Docker composer搭建Spring Cloud Alibaba 运行环境(二)