一. 在winows
安装docker 。
安装exe文件后,可以在命令行中执行
docker
命令。但pull镜像时会报错。
image.png
这是因为docker需要开始守护进程。手动开启docker服务。开启服务的同时。也要保证docker客户端在运行。
image.png
二. 编写dockerFile文件,构建镜像
这是我写的dockerfile文件。比较简单
FROM java:openjdk-8-jre-alpine
EXPOSE 12315
ENV LANG C.UTF-8
VOLUME /tmp
ADD target/app-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
构建镜像
docker build -t app .
docker build
-t : 指定镜像名称
. : 表示dockerfile所在的目录。
构建的镜像可以使用命令
image.pngdocker images
查看
运行镜像
docker run -d -p 12325:12315 app -e --spring.profiles.active=prod
-d :后台运行
-p :指定端口
12325:12315 :前边表示宿主机的端口。后边表示docker容器的端口。
app :镜像名称。也可以使用镜像id
-e: 向启动的容器内传入环境变量。在我使用过程中发现好像只有写在结尾处才有用。
docker run -d -p 12315:12315 -e --spring.profiles.active=prod app 这样写的话,环境变量就没有设置成功。
使用docker container ls
查看正在运行的容器
image.png
进入容器内部
可能是我制作的镜像不标准。在使用
进入容器报错docker exec -it a8fb5707f30a /bin/bash
尝试进入容器时。报错了。
最后通过docker exec -it a8fb5707f30a sh
进入到容器了
成功进入容器
镜像正常运行的截图
这里的env
是我用来测试设置环境变量的。通过 -e --spring.profiles.active=prod
成功将springboot项目以prod
模式启动。说明 -e
的命令生效了。 如果需要设置多个变量。使用空格分开即可。
docker run -d -p 12325:12325 app -e --spring.profiles.active=prod --server.port=12325
这样就让容器以端口12325 。prod模式运行。
- image.png
三. 将镜像上传到远程仓库。
我选择的是阿里云库。需要提前在阿里云开通容器镜像服务,创建命名空间和镜像等操作。
在阿里云创建镜像后,根据阿里文档的指引很容易就可以将镜像上传。
有点需要注意。就是生成tag的时候选择阿里的公网地址。 如果你是阿里ecs就不用管这些了。
四.镜像的持续更新和维护
正在使用中。。。。
网友评论