一、前言
最近项目频繁用到docker,也是将自己的学习记录。
Dockerfile 创建完成后,可以使用 docker build 命令根据 Dockerfile 构建一个镜像
一、创建一个Dockerfile
三、执行命令构建镜像
docker build -t test:v1.0 .
注意最后有个点,默认使用 “上下文目录(Context)下的名为Dockerfile 的文件作为 Dockerfile”,
我这条命令的点表示当前目录下的Dockerfil
-t test: v1.0 给新构建的镜像取名为 test, 并设定版本为 v1.0 。
四、docker images 查看是否构建成功
docker images
docker build: 用 Dockerfile 构建镜像的命令关键词。
[OPTIONS] : 命令选项,常用的指令包括 -t 指定镜像的名字,
-f 显示指定构建镜像的 Dockerfile 文件(Dockerfile 可不在当前路径下),
如果不使用 -f,则默认将上下文路径下的名为 Dockerfile 的文件认为是构建镜像的 “Dockerfile” 。
上下文路径|URL: 指定构建镜像的上下文的路径,构建镜像的过程中,可以且只可以引用上下文中的任何文件 。
五、镜像上传至远程dockerhub仓库
去docker hub注册
https://hub.docker.com/ 注册下 得到docker id和密码
并创建仓库名称:
服务器登录docker hub仓库
docker login
根据提示输入账户和密码
登录成功提示:Login Succeeded
推送到docker hub仓库
docker push : 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push [OPTIONS] 本地镜像名[:TAG]
OPTIONS说明:
–disable-content-trust :忽略镜像的校验,默认开启
push镜像
将上图镜像用命令推送到dockerhub仓库:
命令:
(前提是登录成功)
docker push gcr.io/kaniko-project/executor:debug-v0.12.0
但是呢出现以下问题:
unauthorized: You don’t have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication
看了网上的经验,原来是tag 镜像的时候,要加上自己docker hub 的用户名:
于是我们重新对这个镜像打tag
重新push打好的镜像,这次成功了。
去docker检查以下是否存在!
上传成功