1 Docker数据卷
特点文章来源地址https://www.toymoban.com/news/detail-834987.html
- 数据卷存在于宿主机的文件系统中,独立于容器,与容器的生命周期是分离的。
- 数据卷可以是目录,也可以是文件,容器可以利用数据卷与宿主机进行数据共享,实现容器间的数据共享和交换。
- 容器启动初始化时,如果容器使用的镜像包含了数据,这些数据会拷贝到数据卷中。
- 容器对数据卷的修改是实时进行的。
- 数据卷的变化不会影响镜像的更新。数据卷独立于联合文件系统,镜像基于联合文件系统。镜像与数据卷之间不会相互影响。
1.1 Docker挂载容器数据卷
- bind mounts:将宿主机上的一个文件或目录挂载到容器上
- volumes:由Docker创建管理
- tmpfs mounts:
1.1.1 bind mounts
- 方式一:-v 宿主机文件或目录路径:容器文件或目录路径
docker run -dti -v /root/host_dir:/root/c_dir REPOSITORY
- 方式二:–mount type=bind, src=宿主机文件或目录路径, dst=容器文件或目录路径
docker run -dti --mount type=bind, src=/root/host_dir, dst=/root/c_dir REPOSITORY
- src文件或目录必须存在
1.1.2 volumes
- 方式一:-v VOLUME-NAME:容器文件或目录路径
- 方式二:–mount type=volume, src=VOLUME-NAME, dst=容器文件或目录路径
- volume对象管理:
- 创建数据卷对象:docker volume create
- 查看数据卷信息:docker volume inspect
- 查看已创建的数据卷:docker volume ls
- 删除未使用的数据卷:docker volume prune
- 删除一个或多个数据卷:docker volume rm
1.1.3 tmpfs mounts
- –mount type=tmpfs, dst=PATH
1.1.4 共享其他容器的数据卷
docker run -dti --volumes-from CONTAINER REPOSITORY
1.2 数据卷使用注意事项
- 如果挂载一个空的数据卷到容器中的一个非空目录中,那么这个目录下的文件会被复制到数据卷中。(有助于初始化数据卷内容)
- 如果挂载一个非空的数据卷到容器中的一个目录中,那么容器中的目录会显示数据卷中的数据。如果容器中的目录中有数据,那么这些原始数据会被隐藏。
2 Docker仓库
2.1 搭建无认证私有仓库
- 第一步,在需要搭建仓库的服务器上安装docker
- 第二部,在服务器上,从docker hub上系在registry仓库
dcoker pull registry
- 第三步:在服务器上,启动仓库
docker run -dti --restart always \--name my-registry -p 8000:5000 -v /my-registry/registry:/var/lib/registry registry
- 注意:registry内部对外开放的端口是5000。默认情况下,镜像会存放与容器内的/var/lib/registry目录下,如果容器被删除,则存放于容器中的镜像也会丢失。
2.1.1 上传镜像
- 第一步,利用docker tag重命名需要上传的镜像
docker tag IMAGE 服务器IP:端口/IMAGE_NAME
- 第二步,利用docker push上传重命名的镜像
docker push 服务器IP:端口/IMAGE_NAME
- 注意:如果push出现https报错,需要配置/etc/docker/daemon.json文件,添加以下内容:“insecure-registries”:[“服务器IP:PORT”],然后重启docker
2.1.2 下载镜像
docker pull 服务器IP:端口/IMAGE_NAME
2.2 搭建带认证私有仓库
- 第一步,删除无认证的仓库容器
docker rm -f my-registry
- 第二步,创建存放用户名和密码的文件
mkdir /myregistry/auth -p
- 第三步,创建密码验证文件。注意将USERNAME和PASSWORD替换为设置的用户名和密码。
docker run --entrypoint htpasswd registry -Bbn USERNAME PASSWORD > /my-registry/auth/htpasswd
- 第四步,重启仓库镜像
docker run -d \
-p 8000:5000 \
--restart=always \
--name docker-registry \
-v /my-registry/registry:/var/lib/registry \
-v /my-registry/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry
2.2.1 上传、下载镜像
- 第一步,登陆到服务器
docker login -u USERNAME -p PASSWD 服务器IP:PORT
- 第二步,执行pull或push命令
- 第三步,退出登陆
docker logout 服务器IP:PORT
- 查看仓库中已有镜像:
- 访问:服务器IP:PORT/v2/_catalog
文章来源:https://www.toymoban.com/news/detail-834987.html
到了这里,关于Docker数据管理与搭建私有仓库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!