前提条件:
1、假设我们已安装了Docker并具有对应的操作权限
2、我们已经将可运行的代码打包好
3、已拥有镜像仓库
一、镜像的制作
1、Dockerfile的制作
我们需要使用到Dockerfile文件进行镜像的制作。下面是一个简单的Dockerfile文件:
# 需要有jdk的基础镜像
FROM jdk8
# 将jar包添加到工作目录/usr/local,可指定其他
ADD ./demo.jar /usr/local
# 声明工作目录
WORKDIR /usr/local
# 执行定位到工作目录的操作
RUN cd /usr/local && ls
# 最终的启动命令
CMD [“java”, “-jar”, “/usr/local/demo.jar”]
2、镜像的生成
假设我们的jar包和dockerfile文件在同一目录下,下面我们就可以使用Docker命令来制作镜像,命令如下:
# 注意最后的小点
sudo docker build -f ./Dockerfile -t demo:v1 .
- docker build # docker 用来执行制作镜像的命令
- -f ./Dockerfile # -f 后面跟dockerfile文件的路径
- -t demo:v1 # -t 后面跟镜像的名称和标签,可自己定
执行完上述命令之后,镜像将保存在我们本地的docker镜像仓库中,使用镜像查询命令可以进行查看,如下:
sudo docker images | grep demo
二、镜像的推送
假设我们远程仓库的地址是:domain.crs.ctyun.cn:30016/demo
那我们可以使用以下命令进行镜像的推送
# 查找镜像ID
sudo docker images | grep demo
# 重新打标签
sudo docker tag <imageId> domain.crs.ctyun.cn:30016/demo:<版本号>
# 推送镜像
sudo docker push domain.crs.ctyun.cn:30016/demo:<版本号>
- 远程镜像仓库有时需要登录权限,需要先获取对应的权限,然后使用 sudo docker login 命令进行登录
- 使用docker images 命令后,镜像ID一般在第3列,是一个12位的字符串
- 使用docker tag 命令后面如果不带版本号的话,默认版本号是latest