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,不出意外会连接成功的。
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目录
9. 编写Dockerfile
FROM java:8 #项目所依赖的镜像
ADD target/*.jar app.jar #将maven构建好的jar添加到镜像中
EXPOSE 8080 #暴露的端口号
ENTRYPOINT ["java","-jar","/app.jar"] #镜像所执行的命令
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 查看容器日志