DNS不可用

如出现这样的错误:

  1. ERROR: error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/88/881bd08c0b08234bd19136957f15e4301097f4646c1e700f7fea26e41fc40069/data?verify=1552449302-pJVj4p2TS9sUquWEjuDZgIA0f7E%3D: dial tcp: lookup production.cloudflare.docker.com on 10.0.2.3:53: no such host

进入 /etc/resolv.conf 添加

  1. nameserver 8.8.8.8

vagrant 搭的虚拟环境或者docker里面遇到过,每次重启都会失效,可以写个shell脚本修改,每次开机启动就好了。

docker使用还有种方案,容器内的/etc/resolv.conf挂载到宿主机下 /etc/resolv.conf。

修改docker查找源

  1. docker search centos
  2. Error response from daemon: Get https://index.docker.io/v1/search?q=centos: read tcp 52.200.132.201:443: i/o timeout

进入/etc/docker

查看有没有 daemon.json。这是docker默认的配置文件。

如果没有新建,如果有,则修改。

  1. $ vi daemon.json
  2. {
  3. "registry-mirrors": ["https://registry.docker-cn.com"]
  4. }

保存退出。

重启docker服务

service docker restart

成功!

容器保持固定ip

https://yaxin-cn.github.io/Docker/docker-container-use-static-IP.html

查看docker连接

查看容器进程号

docker inspect -f '{{.State.Pid}}'

查看连接

nsenter -t 1840 -n netstat #1840为上面操作获取的pid

容器间通信

参考文章 https://birdben.github.io/2017/05/02/Docker/Docker实战(二十七)Docker容器之间的通信/

新版docker,在容器B run中使用 --link 【容器A】,这样在容器B中就能与容器A建立连接,如需要用到容器A的ip,进行连接服务:

  1. # mysql是容器名
  2. mysql:3306/users?user=root&password=123456

容器拷贝数据

  • 从容器拷贝数据到宿主机

docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径

  • 从宿主机拷贝数据到容器

docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

php连接docker mysql 8.0出错authentication method unknown

  1. SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

MySQL 8默认使用了新的密码验证插件:caching_sha2_password,而之前的PHP版本中所带的mysqlnd无法支持这种验证

解决方法两种,一种是升级PHP支持mysql8的新验证插件,另一种mysql验证方式降级。

mysql配置文件 my.cnf添加配置:

  1. default_authentication_plugin=mysql_native_password

docker php容器 fpm总是出现file not found

nginx 配置SCRIPT_FILENNAME 一定要注意 配置的是php容器中代码所在的路径,不是nginx的路径,这个坑坑了我许久!!!

  1. location ~ \.php$ {
  2. fastcgi_pass 127.0.0.1:9000;
  3. fastcgi_index index.php;
  4. #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  5. fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
  6. include fastcgi_params;
  7. }

docker 安装amqp扩展

php7.1-fpm 总提示lib错误

configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path

  1. apt-get -y install librabbitmq-dev

Docker容器内连接宿主机的Mysql服务器

宿主机在与容器同一局域网的IP地址一般是docker0对应的IP地址段的首个地址(如172.0.17.1)

我们可以在容器里通过172.0.17.1:3306访问到宿主机的mysql服务器

mysql服务器默认的设置为允许127.0.0.1段的ip地址访问

所以此时用172.0.17.1:3306仍然无法访问到宿主机

此时需要在设置一下mysql

  1. mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
  2. mysql>flush privileges;
  3. // 其中各字符的含义:
  4. // *.* 对任意数据库任意表有效
  5. // "root" "123456" 是数据库用户名和密码
  6. // '%' 允许访问数据库的IP地址,%意思是任意IP,也可以指定IP
  7. // flush privileges 刷新权限信息

我用vagrant+virtualbox,ipconfig查询本机ip,然后去连,连上了

bash: ps: command not found

或者 bash: top: command not found

  1. apt-get update && apt-get install procps

docker及服务器遇到的坑的更多相关文章

  1. Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务

    本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...

  2. Docker从入门到掉坑(三):容器太多,操作好麻烦

    前边的两篇文章里面,我们讲解了基于docker来部署基础的SpringBoot容器,如果阅读本文之前没有相关基础的话,可以回看之前的教程. Docker 从入门到掉坑 Docker从入门到掉坑(二): ...

  3. Docker从入门到掉坑(四):上手k8s避坑指南

    在之前的几篇文章中,主要还是讲解了关于简单的docker容器该如何进行管理和操作,在接下来的这篇文章开始,我们将开始进入对于k8s模块的学习 不熟悉的可以先回顾之前的章节,Docker教程系列文章将归 ...

  4. 用xshell 连接docker Linux服务器

    用xshell 连接docker Linux服务器

  5. 第一次使用docker for windows 遇到的坑

    原文:第一次使用docker for windows 遇到的坑 1. 目前win10安装docker, 不需要安装其他工具,可直接到官网下载 2. 此版本的docker可同时运行Windows con ...

  6. Docker跨服务器通信Overlay解决方案(下) Consul集群

    承接上文 本文基于上篇文章,详细的场景说明与分析在前篇随笔中业已记录,有兴趣可以移步 Docker跨服务器通信Overlay解决方案(上) Consul单实例 本文主旨 本文为Docker使用Cons ...

  7. 使用Docker在服务器上部署Ubuntu,本地传文件到docker

    使用Docker在服务器上部署Ubuntu,本地传文件到docker 作者:王佳乐 目录 安装Docker 安装Docker 全部安装流程: 登录服务器 ssh username@ip 检查是否已经安 ...

  8. Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息

    Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息 一.通过redis_exporter监控redis 1.1 下载镜像 1.2 运行服务 ...

  9. Docker跨服务器通信Overlay解决方案(上) Consul单实例

    场景 公司微服务快上线了,微服务都是用Docker容器进行部署的,在同一台主机下,把服务都部署上,注册到Nacos的IP与PORT都是内网的IP与Dockerfile中定义的端口号,看起来好像也没什么 ...

随机推荐

  1. Python中类的属性的访问控制

    因为自己是做.NET的,之前有学习过Python,喜欢这门语言的很多特性,最近又不时看了一会儿,将自己的感受分享给大家,其中也难免会用C#的角度看Python的语法,主要还是讲下Python中类中对属 ...

  2. Struts2 学习笔记--Action Method--接收参数

    struts2中的路径问题 注意:在jsp中”/”表示tomcat服务器的根目录,在struts.xml配置文件中”/”表示webapp的根路径,即MyEclipse web项目中的WebRoot路径 ...

  3. 招新系统(jsp+servlet,实现简略前端网页注册登录+后台增删改查,分学生和管理员,Java语言,mysql数据库连接,tomcat服务器)

    生活不只是眼前的苟且,还有诗和远方. 架构说明: 要求是采用MVC模式,所以分了下面的几个包,但是由于是第一次写,可能分的也不是很清楚: 这个是后台部分的架构: 这个是前端的的展示: (那个StuLo ...

  4. ssm项目快速搭建(配置)

    核心jar包 <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncod ...

  5. [转]Shared——探究react-native通信机制

    原文:https://www.cnblogs.com/android-blogs/p/5623481.html 探究react-native通信机制 通信方式 我们所说的[通信],指的是RN中Java ...

  6. 阿里云 CentOS7安装redis4.0.9并开启远程访问

    1 安装redis编译的c环境 yum install gcc-c++ redis是c语言开发的,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境. 如果没有gcc环境,需要安装gcc ...

  7. Less与Sass框架

    一.Less语法 1.变量声明: @变量名:变量值; @newHeight:20px; 2.调用变量: .box { width: @newHeight; height: @newHeight; } ...

  8. Spring Boot—05页面跳转

    package com.smartmap.sample.ch1.controller.view; import org.springframework.stereotype.Controller; i ...

  9. 直接拿去用!每个App都会用到的LoadingLayout

    前言 项目里都会遇到几种页面,分别为加载中.无网络.无数据.出错四种情况,经常要使用,所以封成库引用了,方便使用,顺便分享出来.先看一下效果: 原理比较简单,继承FrameLayout,在xml渲染完 ...

  10. 通过ajax记录打印信息

     润乾自带的打印直接可以通过触发js事件来进行调用.onClick="report1_print();return false;" 如果客户需要记录某个用户在某个时间段进行打印 ...