准备工作:
1.打开任务管理器,点击CPU,查看虚拟化这项是否为已启用,如果未启用,要在bios开启硬件虚拟化
2.打开控制面板>>程序>>程序和功能>>启动或关闭Windows功能>>勾选Hyper-V、Virtual Machine Platform、适用于Linux的Windows子系统>>确定 重启电脑
3.重启后管理员身份运行的Windows PowerShell里执行:wsl --set-default-version 2
4.下载并安装Docker Desktop Installer.exe
官方地址:https://docs.docker.com/desktop/install/windows-install
5.安装好后如何查看是否安装docker成功:打开CMD 执行docker -v 有输出即代表安装成功
6.设置镜像加速器,打开Docker Desktop>>Settings>>Docker Engine,把下面代码复制进去
{
"registry-mirrors": [
"加速器地址(华为、腾讯、阿里都可以)"
]
}
构建docker image:
1.构建Dockerfile文件(无后缀)
2.打开PowerShell,cd到你要构建的镜像的目录,执行命令行
"New-Item -ItemType File -Name Dockerfile"
3.用文本编辑器编辑Dockerfile文件,编辑内容为:
# 使用 OpenJDK 8 作为基础镜像
FROM openjdk:8
# 作者署名
LABEL authors="yaku1t"
# 将你的 JAR 文件复制到镜像中的 /app 目录
COPY xxx.jar /app/xxx.jar
# 设置容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "/app/xxx.jar"]
4. 把jar包跟构建的Dockerfile文件放在你指定的同一目录下
5.管理员身份运行Windows PowerShell cd到放jar包和Dockerfile文件的目录下
6.登陆dockerhub
docker login -u 你的账号用户名
7.登录成功后构建镜像
docker build -t 名字:版本号 .(这个.代表的是当前目录)
8.构建后查看是否构建成功
docker images
9.看你设置的镜像名是否显示,如显示则代表构建成功
部署到Linux内网:
1.构建成功后导出镜像为tar包
docker save -o E:\path\to\xxx.tar 名字:版本号(我用的是绝对路径也可以用相对路径)
2. 导出后把tar包给放进你想要部署的Linux主机中并加载镜像
docker load -i <放在Linux主机的tar包位置 /path/to/xxx.tar>
3. 最后运行该镜像(使用-p参数来映射容器端口)
docker run -d -p 8080:8080 <镜像名 模板REPOSITORY:TAG 例子redis:6.2.16>
注意事项:
1.该指令中的 -p 8080:8080 选项实际上是将主机的 8080 端口(前面一部分)映射到容器的 8080 端口(后面一部分)
2.因此:主机的 8080 端口请求将被转发到容器内的 8080 端口。
3.如果你springboot的配置文件设置了server.port那就要把后面的那个端口写成你在springboot的配置文件设置的端口
4.如果不想改那就通过-e参数来覆盖你springboot的配置文件里的server.port。
5.举例: 比如你springboot的配置文件设置了server.port=8079
你就有两种命令可供执行:
1.docker run -d -p 8080:8079 redis:6.2.16
2.docker run -d -p 8080:8080 -e "SERVER_PORT=8080" redis:6.2.16