Docker 学习笔记 03——访问仓库与数据管理

129 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

访问仓库

Docker Hub 是 Docker 官方提供的最大的公共镜像仓库,目前包括了超过 100k 的镜像,地址为 hub.docker.com。大部分对镜像的需求,都可以通过在 Docker Hub 中直接下载镜像来实现。

注册

可以在 hub.docker.com 免费注册一个 Docker 账号。

登录

可以通过执行 docker login 命令交互式的输入用户名及密码来完成在命令行界面登录 Docker Hub。 你可以通过 docker logout 退出登录。

拉取镜像

可以通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地。

上传镜像

$ docker tag test:latest user/test:latest
$ docker push user/test:latest
The push refers to a repository [docker.io/user/test]
Sending image list
# 第一次上传时,会提示输入登录信息或进行注册,之后登录信息会记录到本地 ~/.docker 目录下
Please login prior to push:
Username:
Password:
Email:

# 登入/登出 Docker Hub
$ docker login
$ docker logout

数据管理

docker 数据管理

数据卷(volume)

数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

  • 数据卷 可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除

使用数据卷

# 指定路径挂载 -v
docker run -it -v [主机目录]:[容器目录] [CONTAINER]
docker run -it --mount type=bind,source=[主机目录],target=[容器目录] [CONTAINER]
# 匿名挂载
docker run -it -v [容器目录] [CONTAINER]
# 具名挂载
docker run -it -v [volume名称]:[容器目录] [CONTAINER]
docker run -it --mount source=[volume名称],target=[容器目录] [CONTAINER]
# 修改读写权限
docker run -it -v [主机目录]:[容器目录]:[ro/rw] [CONTAINER]
docker run -it --mount type=bind,source=[主机目录],target=[容器目录],[readonly/readwrite] [CONTAINER]
# 查看详情
docker volume inspect [volume名称]
# 清理无效数据卷
docker volume prune

数据卷容器(容器间文件共享)

# 下面三个容器共享一个文件系统,双向拷贝关系(删除一个不影响其余两个的文件共享)
docker run -it --name centos01 centos
docker run -it --name centos02 --volumes-from centos01 centos
docker run -it --name centos03 --volumes-from centos01 centos