(2)docker容器管理、仓库管理、数据管理恢复

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

docker容器管理

启动一个容器:
[root@centos7 ~]# docker run -itd centos-7-x86_64-minimal bash
3f2af7aa89ad0a21e993f5ff1ab76434461a39ee604d39c787dd79c8990970b9
连接进入容器:
[root@centos7 ~]# docker exec -it 3f2af7aa89ad bash
[root@3f2af7aa89ad /]#

用exec进入容器退出时,该容器还在启动中
docker attach 3f2af7aa89ad bash
用attach进入退出时,该容器会关闭

删除docker容器:
-f 强制删除
[root@centos7 ~]# docker rm -f df588614d5d4

容器导出

[root@centos7 ~]# docker export 3f2af7aa89ad > jack.tar

导入容器

[root@centos7 ~]# cat jack.tar |docker import - centos-jack

(2)docker容器管理、仓库管理、数据管理恢复

Docker仓库管理

下载registry镜像,registy为docker官方提供的一个镜像,我们可以用它来创建本地的docker私有仓库。
[root@centos7 ~]# docker pull registry
(2)docker容器管理、仓库管理、数据管理恢复

(2)docker容器管理、仓库管理、数据管理恢复

[root@centos7 ~]# docker run -d -p 5000:5000 registry
##以registry进行启动容器,监听5000端口
##-p:表示做一个端口映射,左边是宿主机端口,右边是容器端口
[root@centos7 ~]# curl 127.0.0.1:5000 -I
HTTP/1.1 200 OK
Cache-Control: no-cache
Date: Thu, 14 Dec 2017 06:56:08 GMT
Content-Type: text/plain; charset=utf-8

进入该容器
[root@centos7 ~]# docker exec -it 8cd992133204 /bin/sh

上传镜像到私有仓库
registry库的IP:172.17.0.2
准备一个镜像
[root@centos7 ~]# docker pull busybox
(2)docker容器管理、仓库管理、数据管理恢复

上传之前需要对镜像打上标记:
[root@centos7 ~]# docker tag busybox 192.168.3.74:5000/busybox
##标记内容必须带有私有仓库的ip:port(宿主机的IP和port)

上传镜像:
[root@centos7 ~]# docker push 192.168.3.74:5000/busybox

报错:
(2)docker容器管理、仓库管理、数据管理恢复

解决:
编辑”/etc/docker/“目录下”daemon.json“文件:
[root@centos7 ~]# vi /etc/docker/daemon.json

{ "insecure-registries":["192.168.3.74:5000"] }

[root@centos7 ~]# systemctl restart docker
启动registry容器:
[root@centos7 ~]# docker start 8cd992133204
8cd992133204

[root@centos7 ~]# docker push 192.168.3.74:5000/busybox
The push refers to a repository [192.168.3.74:5000/busybox]
0271b8eebde3: Pushed 
latest: digest: sha256:91ef6c1c52b166be02645b8efee30d1ee65362024f7da41c404681561734c465 size: 527

查看:
[root@centos7 ~]# curl http://192.168.3.74:5000/v2/_catalog
{"repositories":["busybox"]}

docker数据管理

如果只把数据存储到docker容器中,只有保存镜像的时候才能将数据保存起来,否则数据会随着容器的停止/删除而丢失,为了防止容器中的数据丢失使用如下方法:将宿主机中的目录挂载到容器中,容器中的数据就会保存在宿主机对应的目录中,不会因为你容器的关闭和删除而丢失。

挂载本地目录到容器
[root@centos7 ~]# docker run -itd -v /data/docker/:/data1/ centos bash
##-v:指定挂载目录
##/data/docker/:为宿主机中的目录
##/data1/:为docker容器中的目录,可以不用创建,会自动生成

[root@1d46e83e12fb /]# cat /data1/test.txt 
123

挂载数据卷

挂载目录的时候,可以指定容器name,如果不指定就随机定义了。可以使用命令docker ps查看最右侧一列,使用该name实现数据卷的挂载。

1、启动容器并挂载目录:
[root@centos7 ~]# docker run -itd -v /data/docker/:/data1/ centos bash
3d151cb654313d392c017a26d27eae6a2af75359f01bb6d1b3f410eb392851e2

2、查看最后的NAMES
[root@centos7 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3d151cb65431 centos "bash" 27 seconds ago Up 27 seconds elated_clarke

3、再启动一个容器,同时挂载数据卷:
[root@centos7 ~]# docker run -itd --volumes-from elated_clarke centos-7-x86_64-minimal bash
5a7a53579fcdf08d0f0280de0340dde83f0be25a4421db1819641a875b5314f0

4、进入刚启动的容器
[root@centos7 ~]# docker exec -it 5a7a bash
可以查看到共享的目录
[root@5a7a53579fcd /]# ls data1/
test.txt

所谓挂载数据卷,即多个docker容器使用同一个宿主机中的挂载目录,该方法便于web容器的数据共享

定义数据卷容器

把容器作为数据卷来使用(即,使一个容器扮演宿主机中“/data/docker/"目录的角色)
有时候,我们需要多个容器之间相互共享数据,类似于linux里面的NFS,所以就可以搭建一个专门的数据卷容器,然后其他容器直接挂载该数据卷。

建立数据卷容器:
[root@centos7 ~]# docker run -itd -v /data/docker/ --name centos_testvol centos bash
df7cf785158abb238d2f77451463000590ac64ad77babfda2cf13cab1eaf858e
##-v:指定挂载目录(/data/docker/为本地目录)
##--name:指定容器名称

查看容器信息:
[root@centos7 ~]# docker exec -it df7cf7851 bash
[root@df7cf785158a /]# ls /data/docker/
##这里的 /data/docker/ 不是指的主机中的 /data/docker/目录,两者没有关联

该数据卷容器的作用是使其他容器来共享数据,数据卷容器中的数据无法直接存储到母机。

挂载数据卷
[root@centos7 ~]# docker run -itd --volumes-from centos_testvol --name=test centos bash
4a1c066b524926c9c47da80c1ef11ee8b4322f666a355285768d78be14edbfce
[root@centos7 ~]# 
[root@centos7 ~]# docker exec -it 4a1c066b bash
[root@4a1c066b5249 /]# ls /data/docker/
test.txt

以上成功挂载

数据卷的备份与恢复

备份
新建容器并挂载数据卷和本地目录:
[root@centos7 ~]# docker run -itd --volumes-from centos_testvol -v /data/vol_data_backup/:/backup centos bash
651fdcce3b6707b77727f76919df46b0b3e8f3ea131257670ffd409af5c75d34

[root@centos7 ~]# docker exec -it 651fdcce bash
[root@651fdcce3b67 /]# ls /backup/
[root@651fdcce3b67 /]# ls /data/docker
test.txt

打包数据卷目录/data/docker/:
[root@651fdcce3b67 /]# tar cvf /backup/docker.tar /data/docker/ 
tar: Removing leading `/' from member names
/data/docker/
/data/docker/test.txt

退出容器,查看本地挂载目录:
[root@centos7 ~]# ls /data/vol_data_backup/
docker.tar

说明: 在此新建的该容器功能类似于“跳板机”,即,将该容器同时挂载到数据卷容器和本地目录,然后在该“跳板机”容器中打包数据卷容器中的数据放到本地目录中,以达到备份的目的。

恢复

(2)docker容器管理、仓库管理、数据管理恢复










本文转自 iekegz 51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2050664,如需转载请自行联系原作者
相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
目录
打赏
0
0
0
0
234
分享
相关文章
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
288 93
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
65 23
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
357 15
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
221 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
docker私有仓库harbor安装
通过以上步骤,您可以成功在企业内部安装和配置Harbor私有仓库,方便地管理和分发Docker镜像。Harbor不仅提供了基础的镜像管理功能,还增强了安全性、身份管理和审计功能,使其成为企业级容器镜像管理的理想选择。
121 22
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
81 17
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
137 12
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
332 11
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
348 78

相关产品

  • 容器服务Kubernetes版
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等