当前位置: 首页 > news >正文

linux docker 客户端操作数据卷

客户端操作

1.拉取其他主机上传镜像:

将本地nginx镜像删除

[root@docker ~]# docker rmi nginx

Untagged: nginx:latest

拉取上传的nginx镜像

[root@docker ~]# docker pull 192.168.100.101:5000/nginx

查询本地镜像

[root@docker ~]# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

192.168.100.101:5000/nginx latest 2413ab964032 5 months ago 132.8 MB

由于镜像名字过程不方便使用,修改其名称

[root@docker ~]# docker tag 192.168.100.101:5000/nginx nginx

[root@docker ~]# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

nginx latest 2413ab964032 5 months ago 132.8 MB

2.本地通过nginx镜像运行nginx对应的容器

[root@docker ~]# docker run -itd nginx /bin/bash

查询已运行容器

[root@docker ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

50a00c9e46a1 nginx:latest "/bin/bash" 14 seconds ago Up 13 seconds 80/tcp, 443/tcp jolly_cori

3.操作当前容易运行的系统: -i 交互式 -t 分配tty

[root@docker ~]# docker exec -it 50a0 ls

bin dev home lib64 mnt proc run srv tmp var

boot etc lib media opt root sbin sys usr

或者登录当前运行容器

[root@docker ~]# docker exec -it 50a0 /bin/bash

root@50a00c9e46a1:/# ls

bin dev home lib64 mnt proc run srv tmp var

boot etc lib media opt root sbin sys usr

root@50a00c9e46a1:/# cd tmp/

root@50a00c9e46a1:/tmp# ls

root@50a00c9e46a1:/tmp# touch aa.txt

root@50a00c9e46a1:/tmp# echo 1231 >> aa.txt

root@50a00c9e46a1:/tmp# ls

aa.txt

root@50a00c9e46a1:/tmp# exit

容器可以启动服务

--privileged

docker run --name test --privileged -dit base-centos7 /usr/sbin/init

随着服务启动而启动

[root@client ~]# docker run --name myhost -itd --restart=always centos:7.9 /bin/bash

下载一个mysql的镜像 并且运行成容器,通过宿主机ip可以访问mysql

[root@docker101 ~]# docker pull mysql:5.7

[root@docker101 ~]# docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=robin123 -d mysql:5.7

docker数据卷

docker数据卷是经过特殊设计的目录,可以绕过联合文件系统(ufs),为一个或者多个容器提供访问

数据卷设计的目的,在于数据的永久化,它完全独立与容器的生存周期,因此,docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理.

1.docker数据卷独立于docker的存在,与容器生存周期分离

2.docker数据卷存在于docker的宿主机文件系统中

3.docker数据卷可以是目录也可以是文件(如配置文件)

4.docker容器和利用数据卷和宿主机资源共享

5.同一个目录或者文件可以支持多个容器的访问,实现了容器间数据的共享和交换

数据卷的特点

1.数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中

2.数据卷可以在容器之间共享和重用

3.可以对数据卷里的内容直接进行修改

4.数据卷的变化不会影响镜像的更新

5.卷会一直存在,即使挂载数据卷的容器已经被删除

一.容器使用独立的数据

运行一个nginx容器

[root@docker ~]# docker run --name web1 -d -p 80:80 nginx

查询

[root@docker ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

8cc57c5e984c nginx:latest "nginx -g 'daemon of About a minute ago Up About a minute 0.0.0.0:80->80/tcp, 443/tcp web1

描述web1容器的元数据信息

[root@docker ~]# docker inspect web1

登录web1容器

[root@docker ~]# docker exec -it web1 /bin/bash

root@8cc57c5e984c:/# cd /usr/share/nginx/html

root@8cc57c5e984c:/usr/share/nginx/html# ls

50x.html index.html

root@8cc57c5e984c:/usr/share/nginx/html# echo "web1 index" > index.html

root@8cc57c5e984c:/usr/share/nginx/html# cat index.html

web1 index

root@8cc57c5e984c:/usr/share/nginx/html#

二.容器使用系统的数据卷

方式一.指定数据卷映射(覆盖源镜像目录内容)

建立卷内容

[root@docker ~]# mkdir -p /web2/{html,logs}

[root@docker ~]# echo "web2" > /web2/html/index.html

[root@docker ~]# tree /web2

/web2

├── html

│   └── index.html

└── logs

将宿主机的卷共享给容器

[root@docker ~]# docker run --name web2 -d -p 81:80 -v /web2/html:/usr/share/nginx/html -v /web2/logs:/var/log/nginx nginx

容器内部查询

[root@docker ~]# docker exec -it web2 ls /usr/share/nginx/html

index.html

[root@docker ~]# docker exec -it web2 cat /usr/share/nginx/html/index.html

web2

宿主机查询

[root@docker ~]# ls /web2/logs/

access.log error.log

关闭所有容器

[root@docker ~]# docker ps -a | grep -v 'CONTAINER' |awk '{print $1}' |xargs docker rm -f

50d7933c408e

8cc57c5e984c

50a00c9e46a1

关闭某一个容器

[root@docker ~]# docker rm -f `docker ps -a -q`

8cc57c5e984c

方式二: 自动映射卷(不覆盖源镜像目录内容)

docker run --name myweb -d -v mydata:/usr/share/nginx/html nginx:1.25.3

数据存放位置:

/var/lib/docker/volumes/mydata/_data

查看卷信息

[root@myhost ~]# docker volume ls

数据卷容器 (没啥太大用,容器坏了,不能持久化数据)

实现容器之间共享数据

导入centos-6.4-docker.tar.bz2镜像

[root@docker ~]# docker load < /docker/docker-images/centos-6.4-docker.tar.bz2

[root@docker ~]# docker run -it -v /dbdata --name dbdata centos /bin/bash

[root@docker ~]# docker images

539c0211cd76 3.098309 years ago 313.8 MB

[root@docker ~]# docker tag 539c0211cd76 centos6

[root@docker ~]# docker images

centos6 latest 539c0211cd76 3.098311 years ago 313.8 MB

1.创建数据卷容器

[root@docker ~]# docker run -it -d -v /dbdata --name dbdata centos6 /bin/bash

bash-4.1# ls

bin dbdata etc lib media opt root selinux sys usr

boot dev home lib64 mnt proc sbin srv tmp var

[root@docker ~]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

a8e8ca62ac4e centos6:latest "/bin/bash" 36 seconds ago Exited (0) 1 seconds ago dbdata

2.使用数据卷容器

[root@docker ~]# docker run -it -d --volumes-from dbdata --name web1 centos6 /bin/bash

bash-4.1# ls

bin dbdata etc lib media opt root selinux sys usr

boot dev home lib64 mnt proc sbin srv tmp var

[root@docker ~]# docker run -it -d --volumes-from dbdata --name web2 centos6 /bin/bash

bash-4.1# ls

bin dbdata etc lib media opt root selinux sys usr

boot dev home lib64 mnt proc sbin srv tmp var

bash-4.1# echo test > dbdata/index.html

bash-4.1# cat dbdata/index.html

test

可以有多个卷映射

可以映射配置文件

[root@localhost ~]# docker run --name web3 -v /mnt/default.conf:/etc/nginx/conf.d/default.conf -v /webroot:/usr/share/nginx/html -d nginx

http://www.dtcms.com/a/262828.html

相关文章:

  • Excel转pdf实现动态数据绑定
  • [附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的校园服务平台管理系统,推荐!
  • 【甲方安全建设】敏感数据检测工具 Earlybird 安装使用详细教程
  • 6月30日作业
  • AR 学习:开启未来学习新视界​
  • 深入解析TCP:可靠传输的核心机制与实现逻辑
  • 7,FreeRTOS列表与列表项的插入删除
  • docker安装MySQL,创建MySQL容器
  • 认识 Spring AI
  • 根据OS自动加载不同的native库和本地jar包
  • Linux驱动学习day11(定时器)
  • 百度文库智能PPT月访问量超3400万,用户规模翻倍增长
  • demo01:基于 SpringMVC 的用户管理系统
  • AlpineLinux安装部署MongoDB
  • Clickhouse源码分析-TTL执行流程
  • 杂谈-架构时代演进
  • C语言常用转换函数实现原理
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ThemeClock(主题时钟)
  • Windows环境下Docker容器化的安装与设置指南
  • 【第二章:机器学习与神经网络概述】04.回归算法理论与实践 -(1)线性回归模型
  • AWS WebRTC:通过shell分析并发启动master后产生的日志文件
  • 御控助力打造物联网实训室,赋能职业教育高质量发展
  • 大模型-分布式推理简介
  • Linux基础环境开发工具apt、vim和gcc/g++
  • STC8H驱动两相四线步进电机
  • 基于llama-factory+ollama+vllm加速大模型训推生产
  • 大数据(4)-spark
  • Windows 开发环境部署指南:WSL、Docker Desktop、Podman Desktop 部署顺序与存储路径迁移指南
  • STM32-第一节-新建工程,GPIO,点亮LED,蜂鸣器
  • GC3910S:一款高性能双通道直流电机驱动芯片