docker 数据持久化:端口映射、真机目录/存储卷映射

端口映射

最常用的绑定所有网卡

docker container run -itd -p 8080:80 nginx:1.18

绑定指定的网卡及端口

docker container run -d -p 127.0.0.1:8080:80 nginx:1.18

curl -i 127.0.0.1:8080  #访问测试,curl -i 访问不输出信息

绑定指定的网卡及随机端口

docker container run -d -p 127.0.0.1::80 nginx:1.18

curl -i 127.0.0.1:19153  #访问测试,curl -i 访问不输出信息,19153为随机产生的端口

暴露多个端口

docke container run -dp 192.168.4.7:2020:2020 -p 192.168.4.10:3030:3030 nginx:1.18

自动端口随机映射

docker run -d -P  nginx:1.20


docker container run -itd -e MYSQL_ROOT_PASSWORD=123 mysql:5.7    #docker仓库官方文档解释,

mysql镜像必须添加参数,为mysql密码

存储卷映射——两种保证容器数据不丢失的方法(相当于绑定挂载点)

存储卷:将宿主机的某个目录和容器内的某个目录绑定在一起。(删除容器,存储卷数据一直在

1、真机目录映射容器目录(支持权限设置,比如 ro 只读)

docker container run -itd -v 宿主机目录:容器目录:ro  镜像   #删除容器后,宿主机目录文件一直存在
docker volume   --help     #存储卷  , --hep 选项中 pause 删除多余的存储卷

docker volume   create  --help     #创建存储卷,选项可选

docker container volume  ls     #查看存储卷

2、存储卷映射容器目录

docker container run -itd -v 存储卷名:容器目录 镜像    #存储卷和容器目录一起存在文件,

                                            存储卷名不能以 /  开头,/ 开头的是宿主机目录。

docker container run -itd -v  容器目录 镜像    #自动创建随机存储卷

docker container volume  inspect 存储卷名    #查看存储卷信息,可以看到存储卷位置及其他信息。

3、容器内映射容器目录

docker container -itd --volume-from 容器名  镜像名   #挂载映射容器内的存储卷

docker 数据持久化:端口映射、真机目录/存储卷映射_第1张图片

添加磁盘不重启就可以识别

for i in 'seq 0 2'

do

echo  "---" > /sys/class/scsi_host/host$i/scan

done

注意:使用 lsblk 查看磁盘

你可能感兴趣的:(docker,容器,nginx)