Docker复习03——数据容器卷+实战练习

本文介绍Docker容器技术的应用实践,包括数据容器卷的使用方法、读写规则及卷的继承和共享,通过部署Tomcat、MySQL及Redis等服务,演示如何进行配置及数据持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据容器卷

坑 容器卷记得加个参数

–privileged=true

在这里插入图片描述

docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name=u1 ubuntu
# 目录没有会自动创建
cd /tmp/docker_data
ls
touch a.txt
ls

主机内
cd  /tmp/host_data
ls
a.txt # 发现也有txt 
touch hosin.txt

回到容器内看
ls
a.txt
hosin.txt # 发现也有hosin.txt
echo 'hello docker' >a.txt


主机内查看
cat a.txt
hello docker # 也有


docker inspect 容器id # 查看详细信息



容器停止
docker stop 容器id
主机内 
touch c.txt # 在容器停止的情况下创建

docker start 容器id
docker exec -it 容器id /bin/bash
cd /tmp/docker_data
ls # 发现也有 c.txt

容器卷读写规则

读写(默认) rw

只读

在这里插入图片描述

卷的继承和共享

容器1完成和宿主机的映射

容器2继承容器1的卷规则

docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name=u1 ubuntu

# 继承 
docker run -it --privileged=true  
--volumes-from 父类(u1)
--name u2 ubuntu


如果u1没有了 u2创建文件主机还是能搜到 
u1恢复 也都有这些文件了

实战

安装tomcat

docker search tomcat # 查
docker pull tomcat # 下载
docker run -it -p 8080:8080 --name tomcat1 tomcat  # 运行
测试访问
404~ 
webapps 里面没有首页文件
webapps.dist 这里面才有
把webapps.dist 重命名为webapps


docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk 
# run 没有 会自己去下

安装mysql

#简单版
docker pull mysql:5.7

docker run -d
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=123456
--name mysql57
mysql:5.7

docker ps # 看看启动成功了没

docker exec -it 容器id /bin/bash

mysql -u root -p 123456

#外部navicat访问

#插入中文报错 编码不一样 latin1
#要修改
#数据也要备份


# 实战版
docker run -d 
-p 3306:3306 
--privileged=true 
-v /zzyyuse/mysql/log:/var/log/mysql
-v /zzyyuse/mysql/data:/var/lib/mysql 
-v /zzyyuse/mysql.conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
--name mysql
mysql:5.7


docker ps
cd /zzyyuse/mysql.conf
vim my.cnf

[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
:wq



docker ps
docker restart mysql容器id
docker exec -it mysql容器id /bin/bash
mysql -uroot -p 123456
show variables like 'character%' #查看编码

# 发现中文可以插入成功
删除mysql容器
数据呢~~
此时重新启动
docker run -d
-p 3306:3306
--privileged=true 
-v /zzyyuse/mysql/log:/var/log/mysql
-v /zzyyuse/mysql/data:/var/lib/mysql 
-v /zzyyuse/mysql.conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
--name mysql
mysql:5.7

数据还是有~

安装redis

# 简单版
docker pull redis:6.0.8
docker run -d
-p 6379:6379 
redis:6.0.8

docker exec -it 容器id /bin/bash
redis-cli
set k1 v1
get k1

# 实战版
mkdir -p /app/redis
拷贝一下redis.conf 
cp /myredis/redis.conf /app/redis/
vim redis.conf #修改redis.conf
# bind 127.0.0.1  #注释掉  允许redis外地连接
将daemonize yes 注释或者  改成no
还不行 就把 protected-mode 改成 no


docker run -d
-p 6379:6379 
--name myr3
--privileged=true
-v /app/redis/redis.conf:/etc/redis/redis.conf
-v /app/redis/data:/data 
redis:6.0.8 
redis-server /etc/redis/redis.conf


docker ps
docker exec -it myr3 /bin/bash
redis-cli
set k1 v1
get k1

改主机内配置文件 database 16 改成 10
docker restart myr3
docker exec -it myr3 /bin/bash
redis-cli
select 15 # 报错了 证明就是使用自己的配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值