Docker的基本操作2

CSDN话题挑战赛第2期
参赛话题:学习笔记

请添加图片描述
个人名片:

博主酒徒ᝰ.
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志三人行,必有我师焉。

请添加图片描述
本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看

三、数据卷

1.为什么要使用数据卷

2.数据卷

1.方法

数据卷是一个虚拟目录,指向宿主机文件系统中的某个目录。
语法:

docker volume [COMMAND]

docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:
create 创建一个volume
inspect 显示一个或多个volume的信息
ls 列出所有的volume
prune 删除未使用的volume
rm 删除一个或多个指定的volume

2.案例:

3.2.1创建一个数据卷,并查看数据卷在宿主机的目录位置

# 创建数据卷html
docker volume create html
# 查询系统所有数据卷
docker volume ls
# 查询数据卷html的具体信息
docker volume inspect html
# 删除数据卷html
docker volume rm html

# 删除未使用数据卷,谨慎操作
docker volume prune

3.挂载数据卷

1.方法

我们在创建容器时,可以通过 -v参数来挂载一个数据卷到某个容器目录

docker run \
--name mn \
-v html:/root/html \
-p 8080:80
nginx \

docker run :就是创建并运行容器
– name mn:给容器起个名字叫mn
-v html:/root/htm:把html数据卷挂载到容器内的/root/html这个目录中
-p 8080:80 :把宿主机的8080端口映射到容器内的80端口
nginx:镜像名称

2.案例

3.3.2.1 创建一个nginx容器,修改容器内的html目录内的index.html内容
需要将之前创建的容器mn进行删除。

# 创建mn容器并挂载数据html卷到容器内的HTML目录
docker run -name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /usr/lib/docker/volumes/html/_data
# 修改文件
vi index.html

image.png
博主这里是之间双击index.html使用vscode打开进行修改的。
image.png
3.3.2.2 创建并运行一个MySQL容器,将宿主机目录直接挂载到容器

# 将资料中的mysql.tar移到虚拟机/tmp目录
# 解压mysql安装包到镜像文件
docker load -i mysql.tar
# 查看镜像文件
docker images
# 创建conf文件夹
mkdir -p mysql/conf
# 创建data文件夹
mkdir -p mysql/data
# 创建并运行mysql容器
docker run \
 --name c_mysql \
 -e MYSQL_ROOT_PASSWORD=123 \
 -p 3307:3306 \
 -v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
 -v /tmp/mysql/data:/var/lib/mysql \
 -d mysql:5.7.25
# 查看运行容器
docker ps

docker run:创建并运行容器
-e MYSQL_ROOT_PASSWORD=123:初始化 root 用户的密码,设置密码为123。 -e 是环境变量的意思。
-p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。冒号左侧是宿主机端口,右侧是容器端口
v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf
将主机的 /tmp/mysql/conf/hmy.cnf 挂载到容器的 /etc/mysql/conf.d/hmy.cnf。
-v /tmp/mysql/data:/var/lib/mysql:将主机的 /tmp/mysql/data 挂载到容器的 /var/lib/mysql。
-d:后台运行

  • 连接MySQL容器,验证mysql是否可以使用。

image.png

猜你喜欢

转载自blog.csdn.net/m0_65144570/article/details/127236112
今日推荐