使用idea集成远程docker部署项目+数据库部署

1.修改配置文件

vim /usr/lib/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd-current 后面加上

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

2 重新加载配置文件,重启docker

systemctl daemon-reload

systemctl restart docker

3 查看进程(出现 -H unix://XXX/docker.sock说明成功)

4.关闭防火墙或者暴露 2375端口(配置中配置的端口)

systemctl status firewalld
firewall-cmd --state
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
查看防火墙规则
firewall-cmd --list-all 
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

5.idea安装 docker插件

6 打开小扳手(setting)找到docker,输入虚拟机ip,不出意外会连接成功的。
使用idea集成远程docker部署项目+数据库部署_第1张图片
7.springboot项目中添加 maven-docker插件(pom.xml中)


   com.spotify
   docker-maven-plugin
   1.0.0

   
   
      
         build-image
         
         package
         
            build
         
      
   

   
      
      jackcheng1117/${project.artifactId}
      
      
         latest
      

      
      ${project.basedir}

      
      http://192.168.72.105:2375

      
      
         
            /
            
            ${project.build.directory}
            
            ${project.build.finalName}.jar
         
      

      
      docker-hub
      https://index.docker.io/v1
   


8.在项目根目录下创建docker目录
使用idea集成远程docker部署项目+数据库部署_第2张图片
9. 编写Dockerfile

FROM java:8   #项目所依赖的镜像
ADD target/*.jar app.jar    #将maven构建好的jar添加到镜像中
EXPOSE 8080   #暴露的端口号
ENTRYPOINT ["java","-jar","/app.jar"]  #镜像所执行的命令

10: 点击maven的package进行构建
使用idea集成远程docker部署项目+数据库部署_第3张图片

  1. 创建容器,找到刚刚生成的镜像,点击创建容器使用idea集成远程docker部署项目+数据库部署_第4张图片
    使用idea集成远程docker部署项目+数据库部署_第5张图片
    Image ID 是打包生成的那个镜像

Container name 容器名字随便取

Bind ports 8080是docker对外开放的端口,8082是项目端口(个人理解)

12: 设置好后,启动容器,启动成功后去虚拟机查看是否启动成功

13: 访问虚拟机ip+端口号

https://blog.csdn.net/jackcheng1117/article/details/83080303

数据库部署

1 拉取mysql镜像

docker pull hub.c.163.com/library/mysql:latest

因为docker容器,关闭,重启后,会清空容器里面的数据,所有我们用挂载的方式启动mysql,保存数据库数据

先在centos主机上创建文件夹  /usr/mysql_data
挂载启动mysql镜像:
docker run --name mymysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /usr/mysql_data:/var/lib/mysql -d hub.c.163.com/library/mysql:latest

docker run --name mymysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d hub.c.163.com/library/mysql:latest

防火墙必须是开的,如果关了可能无法启动

service firewalld start

docker run --name mymysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d hub.c.163.com/library/mysql:latest

查看启动的容器----

docker ps
docker ps -a     #查看所有容器
docker restart b64fa987e28f    重启容器
docker exec -it mymysql bash    进入容器
docker logs -f 6e5b66c8a0af  查看容器日志

注:–name :给容器取一个别名为mymysql
-p :映射端口号,将mysql的端口号3306 映射为 3306
-e MYSQL_ROOT_PASSWORD : 设置root密码为123qwe
-v :使用/usr/mysql_data 挂载mysql数据文件,保存数据库数据
-d : 后台运行容器,并返回容器ID;
hub.c.163.com/library/mysql:latest :镜像名称
可使用docker images 查看所有镜像

进入容器修改mysql编码格式:

docker exec -it mymysql bash    进入容器

安装vim

apt-get update

apt-get install vim
vim /etc/mysql/mysql.conf.d/mysqld.cnf

然后你发现vim 编辑器可以使用以后,在此文件中添加如下字段
在 [mysqld] 标签下加上三行

default-character-set = utf8
character_set_server = utf8
在 [mysql] 标签下加上一行
default-character-set = utf8
在 [mysql.server]标签下加上一行
default-character-set = utf8
在 [mysqld_safe]标签下加上一行
default-character-set = utf8
在 [client]标签下加上一行
default-character-set = utf8

SHOW VARIABLES LIKE ‘character_set_%’;

https://blog.csdn.net/m0_37639542/article/details/72852875

https://blog.csdn.net/m0_37639542/article/details/72852875

还可以启动的时候知道mysql的配置文件

新建一个mysql容器,然后查看配置并复制出来创建一个新的my.cnf

   docker run --name mymysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root  -d hub.c.163.com/library/mysql:latest
   cat /etc/mysql/mysql.conf.d/mysqld.cnf     查看内容
	docker rm -f mymysql    删除测试mysql镜像

docker run --name mymysql -p 3306:3306 -v /soft/mysql/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /soft/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root  -d hub.c.163.com/library/mysql:latest       #启动


    docker exec -it mymysql bash    进入容器
    docker logs -f mymysql  查看容器日志

你可能感兴趣的:(微服务,docker)