镜像上传
1. 注册 Docker hub 账号
上传镜像到DockerHub前,需要在DockerHub上注册账号。注册步骤可参考:注册 docker hub 的账号
2. Linux 登录 Docker hub 账号
有了Docker Hub账号后就可以进行登陆
docker login [OPTIONS] [SERVER]
options 说明
options | 作用 |
---|---|
-u | 账号 |
-p | 密码 |
–password-stdin | 通过 STDIN 提供密码 |
3.给镜像设置 TAG
作用
- 给本地镜像打一个标记(tag),可将其归入某一仓库
- 有点像 Git 里面给不同时段写的代码打不同的 tag 一样
语法格式
docker push [OPTIONS] NAME[:TAG]
options 说明
options | 作用 |
---|---|
–disable-content-trust | 忽略镜像的校验,默认开启 |
案例
docker push poloyy/jenkins
重点:
poloyy/jenkins ,为什么会起这个名字,因为 poloyy 是我在 Docker Hub 注册的账号名(Docker ID)
如果前面不写存在的账号名(需要已登录),或者写了但没有 docker login 登录这个账号的话,均会报权限错误的问题哦
权限错误解决方案
docker push 的时候报错:denied: requested access to the resource is denied
可参考:https://www.cnblogs.com/poloyy/p/13985034.html
访问https://hub.docker.com/
,登录自己的账号能看到刚刚上传的镜像,此时这个镜像是公开的,你可以在其他地方进行拉取
docker pull poloyy/jenkins
导出和导入
持久化docker的镜像或容器的方法
Docker的镜像和容器可以有两种方式来导出
docker save #ID or #Name
docker export #ID or #Name
docker save和docker export的区别
- 对于Docker Save方法,会保存该镜像的所有历史记录
- 对于Docker Export 方法,不会保留历史记录,即没有commit历史
- docker save保存的是镜像(image),docker export保存的是容器(container);
- docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
- docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
1.save命令
语法格式
docker save [options] images [images...]
options 说明
名称 | 默认值 | 描述 |
---|---|---|
–output , -o | 写到指定的文件中,而不是标准输出流上 |
示例
docker save -o nginx.tar nginx:latest
或
docker save > nginx.tar nginx:latest
其中-o
和>
表示输出到文件,nginx.tar
为目标文件,nginx:latest
是源镜像名(name:tag)
2.load命令
语法格式
docker load [options]
options 说明
名称 | 默认值 | 描述 |
---|---|---|
–input , -i | 从文件加载而不是从标准输入流 | |
–quiet , -q | 不显示输出信息 |
示例
docker load -i nginx.tar
或
docker load < nginx.tar
其中-i
和<
表示从文件输入。会成功导入镜像及相关元数据,包括tag
信息
3.export命令
语法格式
docker export [options] container
options 说明
option | 说明 |
---|---|
-o | 将输入内容写到文件 |
示例
docker export -o nginx-test.tar nginx-test
#导出为tar
docker export #ID or #Name > /home/export.tar
其中-o
和>
表示输出到文件,nginx-test.tar
为目标文件,nginx-test
是源容器名(name)
4.import命令
语法格式
docker import [options] file|URL|- [REPOSITORY[:TAG]]
options 说明
option | 说明 |
---|---|
-m | 提交时的说明文字 |
-c | 将Dockerfile指令应用于创建的映像 |
示例
docker import nginx-test.tar nginx:imp
或
cat nginx-test.tar | docker import - nginx:imp