Docker 小问题

2021-04-19  本文已影响0人  子丿龙

1. 更改端口映射,(例如,启动mysql是忘记配置端口映射)

方法1:

1.先停止容器

docker stop mysqlA

2.再停止docker

systemctl stop docker

3.修改docker配置文件,在这个json文件里,找到 PortBindings 对象,追加新端口参数

vi   /var/lib/docker/containers/{container_id}/hostconfig.json

例如,追加一个3307端口映射:

"PortBindings": {
     "3306/tcp": [
         {
             "HostIp": "",
             "HostPort": "3306"
         }
     ],
     "3306/tcp": [
         {
             "HostIp": "",
             "HostPort": "3307"
         } 
     ]
 }

4.检查config.v2.json文件里是否也记录了端口映射,也要修改

"Config": {
    ....
    "ExposedPorts": {
        "8898/tcp": {}
    },
    ....
},
"NetworkSettings": {
....
"Ports": {
     "8898/tcp": [
         {
             "HostIp": "",
             "HostPort": "8082"
         },
        {
             "HostIp": "",
             "HostPort": "8083"
         }
     ],

5.启动docker服务

systemctl start docker

6.启动容器

docker start  mysqlA
方法2:

本质就是创建新镜像重新启动,但是如果原来的容器已经配置了参数,那么这种方式可以保留参数(因为是用原来带参数的容器构建的镜像)。
1.先停止容器

docker stop mysqlA

2.将容器commit成为一个镜像

docker commit mysqlA  mysqlB

3.运行容器

docker run  -p 3306:3306   -d  mysqlB

2. 容器A 无法访问 在同一个宿主机内的 容器B(例如:端口8082),

3. redis容器无法被 其他容器访问(例如容器A)

4. 容器时间和宿主机时间不一致(例如:我的lottery容器)

#将宿主机时间文件拷贝至容器
docker cp /etc/localtime  lottery:/etc/
docker cp  /usr/share/zoneinfo/Asia/Shanghai   lottery:/etc/localtime
上一篇 下一篇

猜你喜欢

热点阅读