简述

有的时候你可能需要修改容器的默认端口号,修改容器的默认端口号和修改宿主机的类似,都是修改配置文件中的默认端口,下面已MySQL例,如下将默认端口号修改为33077
docker:修改容器默认端口号(以mysql为例) - 图1

一、创建容器

  1. docker run --name mysql-test -itd -p 3307:33077 -e MYSQL_ROOT_PASSWORD=123456 mysql:latest

docker:修改容器默认端口号(以mysql为例) - 图2

二、修改默认端口号

1、进入容器
  1. docker exec -it mysql-test bash

2、修改 /etc/mysql/my.cnf ,有以下两种方法

① 首先测试你的容器有没有 vim 或 vi 命令

(不推荐,容器支持vim/vi则快,否则安装软件比较慢)
docker:修改容器默认端口号(以mysql为例) - 图3
安装 vim 命令 相对麻烦

  1. 获取到最新的软件包
  2. apt-get update
  3. apt-get install vim
  4. yum update
  5. yum install vim

然后 vim /etc/my.cnf 修改端口号
docker:修改容器默认端口号(以mysql为例) - 图4

②、先将 my.cnf 复制到宿主机修改,修改完成再复制进容器(推荐)
  1. 命令说明
  2. mysql-test 容器名
  3. /etc/mysql/my.cnf:容器中 my.cnf路径
  4. /rootmy.cnf在宿主机保存路径
  5. docker cp mysql-test:/etc/mysql/my.cnf /root

docker:修改容器默认端口号(以mysql为例) - 图5
vim my.cnf 进入文件修改或添加端口号
docker:修改容器默认端口号(以mysql为例) - 图6
将文件重新复制进容器内

  1. docker cp /root/my.cnf mysql-test:/etc/mysql/

3、重启容器
  1. docker restart mysql-test

链接成功
docker:修改容器默认端口号(以mysql为例) - 图7

4、登录MySQL查看端口号
  1. mysql -u root -p
  2. show global variables like 'port';

docker:修改容器默认端口号(以mysql为例) - 图8