Docker容器进阶(一)

一、端口转发

1.1 目标

  1. 使用端口转发解决容器端口访问问题;
  2. 创建应用容器的时候一般会做端口映射,这样是为了让外部能够访问这些容器里的应用。可以用多个 -p 指定多个端口映射关系。

1.2 MySQL应用指定端口转发

1.2.1 下载并运行

python 复制代码
docker pull docker.1ms.run/mysql:5.7
# -p 把本地的3307转发到容器的3306
docker run --name mysql1 -p 3307:3306  -e MYSQL_ROOT_PASSWORD=123  docker.1ms.run/mysql:5.7

再开一个新的终端(还是之前的宿主机,只是新开了一个窗口),查询容器实例的IP地址

python 复制代码
docker inspect mysql1 | grep IPAddress

1.2.2 访问容器mysql

1.2.2.1 安装数据库客户端
python 复制代码
# 下载
yum install -y mariadb

# 查询容器实例映射端口
docker port mysql1
1.2.2.2 登录mysql 容器
python 复制代码
mysql -h 容器实例ip -u root -p123 -P 3307

or

mysql -h 宿主机ip -u root -p123 -P 3307

可以尝试操作下数据库

附着进容器实例观察

二、容器卷

2.1 简介

容器卷是容器和宿主机之间的文件共享方式之一

2.2 示例

2.2.1 挂在宿主机TMP目录至容器

python 复制代码
# 启动一个没有容器卷的实例
docker run -it --name my_tmp centos:5 /bin/bash

# 查看是否有test目录
ls /test

# 返回宿主机  ctrl+p+q

# 查看是否有tmp目录
ls /tmp

# 创建文件夹及文件
touch /tmp/docker-vol.txt

# 文件里面写点东西
echo 12345678 > /tmp/docker-vol.txt
python 复制代码
# -v 宿主机目录:容器目标目录 
docker run -it --name="voltest" -v /tmp:/test centos:5 /bin/bash

2.2.2 共享其他容器的卷

python 复制代码
# 查询上一个容器实例
docker ps

# 启动容器 共享voltest容器的卷
# voltest容器中已经存在挂在卷了。所以我们引用voltest卷
# --volumes-from   容器voltest的ID
docker run -it --volumes-from  b2870054852d centos:5 /bin/bash

2.2.3 挂在多目录至容器

2.2.3.1 多个卷同时挂在
2.2.3.2 挂在一个文件
相关推荐
动力 continue39 分钟前
docker容器大舞台,创建镜像,构造类,基础速通
docker·容器
乌恩大侠1 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
tangwangbi1 小时前
Linux 系统配置文件:/etc/profile、~/.bashrc 和 ~/.bash_profile 三者之间的区别与作用
linux·运维·bash
Akiyama_Mio-Kon1 小时前
2026 最新:Dify 本地 Docker 部署完整教程(Windows + Git Bash)
windows·git·docker
蜀道山老天师1 小时前
Shell Bash变量与运算符(含条件测试与流程控制)
linux·运维·bash
草邦设计开发团队_媒体资源平台1 小时前
GEO 信源整合一键发布软文:从内容生产到流量获客的自动化实践
运维·人工智能·自动化
zhou lily1 小时前
非标自动化管理系统ERP如何选?2026年10大ERP软件对比分析
运维·自动化
mengge.cloud2 小时前
存储技术基础小白教程
linux·运维·服务器·wpf·存储
云贝贝贝2 小时前
腾讯云 TDSQL(MySQL 版)运维高频 6 坑:代理路由、读写分离、分片键、监控、PITR
运维·mysql·腾讯云
小五传输2 小时前
FTP替代怎么做?医院文件安全传输选型与迁移指南
大数据·运维·安全