docker的安装及其配置上传项目,附带整合使用docker中的mysql
docker安装
1.先卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.需要的安装包
yum install -y yum-utils
3.设置镜像仓库,原生的是外国的网站,会比较的慢,这里采用的是阿里的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.安装docker的相关源
yum install docker-ce docker-ce-cli containerd.io
5.启动docker
systemctl start docker
部署springboot项目到docker
1.首先在springboot项目的pom.xml文件中添加Docker镜像名称:
<properties>
<java.version>1.8</java.version>
<docker.image.prefix>baiyaofeng</docker.image.prefix>
</properties>
2.在plugin中添加docker构建插件:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
3.配置数据库jdbc(可先执行docker中mysql的配置,后面就不用重新打包了)
4.对项目进行打包,使用自带的
5.创建Dockerfile文件,这里可以直接使用记事本的形式,后面把txt删掉即可
FROM java:8
VOLUME /tmp
ADD movie-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
标注:
FROM:表示基础镜像,即运行环境
VOLUME:一个特别指定的目录,用于存储数据,该命令的作用是在/var/lib/docker创建一个名为tmp的目录,在开启redis服务时,需要特别指定redis的数据存储在哪个文件夹,此时这个命令就十分有用
ADD:拷贝文件并且重命名
EXPOSE:并不是真正的发布端口,这个只是容器部署人员与建立image的人员之间的交流,即建立image的人员告诉容器布署人员容器应该映射哪个端口给外界
ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
6.创建docker文件夹,将jar包与Dockerfile移动到该文件夹,进入该文件夹,运行命令:
docker build -t docker .
这个时候镜像已经创建进去了,启动镜像把镜像加载到容器里面:
docker run -p 8070:8080 -d docker
-p表示端口映射,冒号左边为docker容器外的端口号,右边为容器内的端口号,-d表示后台运行 docker表示REPOSITORY的值
7.可以查看到当前容器是否运行镜像了
docker ps
安装mysql镜像并运行
1.现在docker上安装mysql的镜像,不指定版本号默认是最新版
dockers pull mysql
2.在后台启动mysql,并将密码设置为123456,如果我们本机上运行了mysql,可以将上述的-p参数改为3307:3306,或是关掉本地的mysql
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
3.查看容器中运行的mysql的id号
docker ps
4.进入运行容器的bash,可以进入mysql的命令界面
docker exec -it id(这里是容器中mysql的id号) bash
5.这里设置一下可以让本地的navicat工具可以访问到docker容器里面的mysql数据库
先查看一下用户信息:
select host,user,plugin,authentication_string from mysql.user;
从新设置密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'
这里的newpassword为新的密码,你喜欢咯
sudo systemctl stop firewalld (关闭防火墙)
最后可以连接navicat了:
创建项目所需要的数据库以及表
6.在本机访问