1. 端口被占用?

    答:请修改根目录下的.env文件,修改对应服务的端口。

  2. docker 提示 Drive has not been shared 错误

    Creating laradock_docker-in-docker_1 ...
    
    Creating laradock_docker-in-docker_1 ... error
    
    ERROR: for laradock_docker-in-docker_1 Cannot create container for service docker-in-docker: b'Drive has not been shared'
    
    ERROR: for mysql Cannot create container for service mysql: b'Drive has not been shared'
    
    ERROR: for docker-in-docker Cannot create container for service docker-in-docker: b'Drive has not been shared'
    ERROR: Encountered errors while bringing up the project.
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    • 因为没有共享磁盘!
    • 右击“docker desktop is runing”,就是电脑右下角的一个图标。
    • 点击“settings”
    • 再点击“shared Drives”
    • 然后把磁盘都勾上,就可以了
  3. window系统使用mongo报错问题(因为windows对docker支持不完善)

    答:编辑 ./dnnmmp/docker-compose.yml文件,删除这三行

        volumes:
      - ${MONGODB_DATA_DIR}:/data/db:rw
      - ${MONGODB_DATA_DIR}/mongo_key:/mongo:rw
    
    1
    2
    3

    然后重新安装: 删除旧容器:docker-compose rm mongodb; 安装:docker-compose up -d mongodb

  4. 127.0.0.1配置不生效?

    答:这是容器的网络通信问题:大概有三种,1:容器A与容器B通信;2:宿主机(本机)与容器A通信,3:容器与外部网络通信。

    举例1:容器nginx与容器PHP通信,那么在配置nginx的配置文件时候,fastcgi_pass 127.0.0.1:9000,要写成:fastcgi_pass php72:9000, 即把127.0.0.1换成docker的服务名称:php72;再如:容器PHP与容器mysql通信,那么访问容器mysql,要写成:mysql:3306,或者 (宿主机内网ip:3306), 如:192.168.10.233:3306。

    举例2:宿主机nginx与容器PHP通信,那么在配置nginx的时候,fastcgi_pass 127.0.0.1:9000可以直接访问。

    举例3:容器访问外部服务,正常;外部网络访问容器mysql,用(容器所在的宿主机ip:3306)来访问。

更新于: 8/28/2019, 1:52:11 PM