Docker基础命令(二)——数据卷管理端口映射与容器互联

一、数据卷管理

1.创建数据卷

复制代码
docker volume create

PS:默认存储在: /var/lib/docker/volumes

2.查看数据卷详细信息

复制代码
docker volume inspect

3.列出已有数据卷

复制代码
docker volume ls

4.删除数据卷

(1)清理无用的数据卷

复制代码
docker volume prune

(2)删除指定数据卷

复制代码
docker volume rm

5.绑定数据卷

(1)volume普通数据卷

复制代码
docker run -itd --name yxcununtu --mount type=volume,source=yxctext,target=/yxctest ubuntu bash 

docker run:Docker 启动容器的核心命令
-i:保持容器标准输入(STDIN)打开,支持交互
-t:分配一个伪终端(TTY),和-i配合实现 "交互式终端"
-d:让容器在 ** 后台(守护进程模式)** 运行
--name yxcubuntu:给容器命名为yxcubuntu(方便后续管理)
--mount type=volume,source=yxctest,target=/yxctest:
配置 ** 数据卷(Volume)** 挂载
type=volume:挂载类型是 Docker 管理的卷
source=yxctest:使用名为yxctest的卷(不存在会自动创建)
target=/yxctest:将卷挂载到容器内的/yxctest目录
ubuntu:基于ubuntu镜像创建容器
bash:容器启动后执行的命令(进入 bash 终端)

(2)bind绑定数据卷

复制代码
docker run -itd --name myubuntu --mount type=bind,source=/myubuntu,target=/myubuntu ubuntu bash

(3)-v

复制代码
docker run -itd --name test -v /aaa:/aaa ubuntu bash

-v /aaa:/aaa:绑定挂载(宿主机目录→容器目录)
把宿主机的/aaa目录,直接挂载到容器内的/aaa目录
(注意:这里用的是-v(旧语法),效果和--mount类似,但-v会自动创建不存在的宿主机目录)

(4)tmpfs临时数据卷:不常用

6.数据卷容器

--volume-from 将容器挂载到一个存放数据的容器内

复制代码
docker run -itd --volumes-from dbdata --name db1 ubuntu bash

7.利用数据卷容器迁移备份

1.压缩文件夹

复制代码
 tar -zcvf /dbdata_backup.tar.gz ./dbdata

2.cp备份

复制代码
cp dbdata_backup.tar.gz ./backup/

3.挂载到新的容器内

复制代码
docker run -itd -v /backup:/backup ubuntu bash

PS:

    1. docker数据卷即使容器在运行中出现故障,用户也不必担心数据发生丢失,只需要快速创建容器。
    1. 可以在容器直接共享使用和重用。
    1. 在本地创建的数据容器能读取,在容器里面创建的数据本地也可以读取

二、端口映射

1.端口范围

0-65535

2.端口映射

(1)查询端口 的 TCP 监听状态及对应的进程

①ss -tlnp
复制代码
ss -tlnp | grep 端口号
②netstat -tlnp
复制代码
netstat -tlnp | grep 端口号

(2)指定端口映射-p

复制代码
docker run -itd -p 80:80 nginx:1.28

(3)随机映射到一个端口-P

复制代码
docker run -itd -P nginx

(4)发起http get请求

复制代码
curl IP:端口号
eg.curl 172.17.0.3:80

三、容器互联

1.创建并启动一个容器

复制代码
docker run -itd --name db ubuntu

2.创建并启动另一个容器,并于之前的容器建立链接(--link)

复制代码
docker run -itd --name web --link db centos

3.验证是否建立链接

(1)进入其中一个容器

复制代码
docker exec -it db bash

(2)查看容器IP/ID/名称

复制代码
cat /etc/hosts

(3)测试网络连通性

①进入另一个容器
复制代码
docker exec -it web bash
②测试是否能够连通
复制代码
ping ip/id/名称
相关推荐
abigriver3 小时前
打造 Linux 离线大模型级语音输入法:Whisper.cpp + 3090 显卡加速与 Rime 中英混输终极调优指南
linux·运维·whisper
charlie1145141915 小时前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
Agent手记5 小时前
异常考勤智能预警与处理与流程优化方案 | 基于企业级Agent的超自动化实战教程
运维·人工智能·ai·自动化
cen__y5 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
dapeng-大鹏7 小时前
KVM+LVM 零停机在线扩容 Ubuntu 根分区:从磁盘添加到逻辑卷扩展完整
linux·运维·ubuntu·磁盘空间扩展
乐维_lwops7 小时前
案例解读|运维监控助力某大型卷烟厂构建高效运维监控体系
运维·运维案例
JiaWen技术圈7 小时前
网站用户注册行为验证码方案
运维·安全
仙柒4158 小时前
Docker存储原理
运维·docker·容器
DolphinDB8 小时前
漫长人工,耗费存储?用 BackupRestore 模块一站式解决跨环境数据同步难题
运维·后端·架构
神奇椰子10 小时前
[特殊字符] 服务器搭建网站完整教程
运维·服务器