配置Docker环境
-
首先在虚拟机/云服务器上安装CentOS操作系统,我安装的是7.6版本,可以使用
cat /etc/centos-release
命令查看。 -
安装
yum-utils
来维护yum并提高其性能,其中-y
表示自动确认。yum install -y yum-utils
-
添加阿里云的Docker镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
清除并重建
yum
缓存yum clean all yum makecache
-
安装Docker
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
-
启动Docker。
systemctl
为system control的缩写systemctl start docker
使用以下命令查看Docker是否启动
systemctl status docker
-
设置Docker为开机自启动
systemctl enable docker
-
配置 Docker 镜像加速器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://e7n1ndig.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
-
运行
hello-world
镜像验证是否正确安装Dockerdocker run hello-world
-
查看image和container
使用下面代码查看images(镜像)docker images
使用下面代码查看正在运行的container
docker ps
使用下面代码查看正在运行和曾经运行过的container
docker ps -a
详细安装流程可在链接Install Docker中查看
运行MySQL
有两种运行MySQL的方式
- 简易方式
此时docker内部如果没有MySQL 5.7的镜像,则会自动下载MySQL镜像
-d
为使container后台运行
-p
是设置端口映射,映射规则为主机端口:容器端口
-e
是配置MySQL的环境,命令中设置密码为root(注意弱口令易被入侵)
--name
是为生成的container命名docker run -d -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=root \ --name test-mysql \ mysql:5.7
- 实战方式
-v
表示挂载文件,将本机的文件和容器内的文件挂载起来,用于持久化保存,防止容器被清除后容器的内容全部丢失
其中<username>
更改为自己的用户文件夹名称,没有的可以使用mkdir -p <dir>
创建docker run -d -p 3306:3306 --privileged=true \ -v /<username>/mysql/log:/var/log/mysql \ -v /<username>/mysql/data:/var/lib/mysql \ -v /<username>/mysql/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=root \ --name test-mysql \ mysql:5.7
在实际应用中应使用第二种方式运行MySQL
将SpringBoot应用打包成Docker镜像
-
在本地安装Docker
点击链接Windows安装docker -
测试并连接MySQL容器
首先测试在本地能否连接虚拟机/云服务器中的Docker中运行的MySQL容器,可以使用Navicat或者IDEA中自带的Database连接插件
上图表示连接成功
测试连接成功后将对MySQL连接的配置文件改为对应云服务器中的MySQL的ip地址和密码
-
打包成
.jar
文件
将SpringBoot应用打包成一个.jar
文件,点击Maven后双击package进行打包
-
编写Dockerfile文件
将Dockerfile文件中<.jar文件>
部分改为上步骤生成的.jar
文件名
Dockerfile的位置在项目目录下FROM openjdk:8 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone ADD ./target/<.jar文件> /app/ CMD ["java", "-Xmx200m", "-jar", "/app/work-0.0.1-SNAPSHOT.jar"] # 设置默认暴露8111端口 EXPOSE 8111
-
执行Dockerfile文件打包成镜像
首先启动本地Docker应用程序
再在IDEA打开Terminal,执行以下代码docker build -t springbootdemo .
生成名为springbootdemo的镜像
将镜像上传至阿里云
进入阿里云平台注册账号并登陆,找到控制台中的容器镜像服务,创建镜像仓库后会自动生成对应的操作指南,按照操作指南将本地镜像进行上传
云服务器下载镜像并运行
登陆云服务器,使用阿里云操作指南中的命令拉取对应的镜像至云服务器,再使用Docker的run命令运行即可