docker及服务器遇到的坑
DNS不可用
如出现这样的错误:
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 添加
nameserver 8.8.8.8
vagrant 搭的虚拟环境或者docker里面遇到过,每次重启都会失效,可以写个shell脚本修改,每次开机启动就好了。
docker使用还有种方案,容器内的/etc/resolv.conf挂载到宿主机下 /etc/resolv.conf。
修改docker查找源
docker search centos
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默认的配置文件。
如果没有新建,如果有,则修改。
$ vi daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
保存退出。
重启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,进行连接服务:
# mysql是容器名
mysql:3306/users?user=root&password=123456
容器拷贝数据
- 从容器拷贝数据到宿主机
docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
- 从宿主机拷贝数据到容器
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
php连接docker mysql 8.0出错authentication method unknown
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添加配置:
default_authentication_plugin=mysql_native_password
docker php容器 fpm总是出现file not found
nginx 配置SCRIPT_FILENNAME 一定要注意 配置的是php容器中代码所在的路径,不是nginx的路径,这个坑坑了我许久!!!
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
include fastcgi_params;
}
docker 安装amqp扩展
php7.1-fpm 总提示lib错误
configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
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
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>flush privileges;
// 其中各字符的含义:
// *.* 对任意数据库任意表有效
// "root" "123456" 是数据库用户名和密码
// '%' 允许访问数据库的IP地址,%意思是任意IP,也可以指定IP
// flush privileges 刷新权限信息
我用vagrant+virtualbox,ipconfig查询本机ip,然后去连,连上了
bash: ps: command not found
或者 bash: top: command not found
apt-get update && apt-get install procps
docker及服务器遇到的坑的更多相关文章
- Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务
本篇为Docker从入门到掉坑第二篇:基于Docker构建SpringBoot微服务,没有看过上一篇的最好读过 Docker 从入门到掉坑 之后,阅读本篇. 在之前的文章里面介绍了如何基于docker ...
- Docker从入门到掉坑(三):容器太多,操作好麻烦
前边的两篇文章里面,我们讲解了基于docker来部署基础的SpringBoot容器,如果阅读本文之前没有相关基础的话,可以回看之前的教程. Docker 从入门到掉坑 Docker从入门到掉坑(二): ...
- Docker从入门到掉坑(四):上手k8s避坑指南
在之前的几篇文章中,主要还是讲解了关于简单的docker容器该如何进行管理和操作,在接下来的这篇文章开始,我们将开始进入对于k8s模块的学习 不熟悉的可以先回顾之前的章节,Docker教程系列文章将归 ...
- 用xshell 连接docker Linux服务器
用xshell 连接docker Linux服务器
- 第一次使用docker for windows 遇到的坑
原文:第一次使用docker for windows 遇到的坑 1. 目前win10安装docker, 不需要安装其他工具,可直接到官网下载 2. 此版本的docker可同时运行Windows con ...
- Docker跨服务器通信Overlay解决方案(下) Consul集群
承接上文 本文基于上篇文章,详细的场景说明与分析在前篇随笔中业已记录,有兴趣可以移步 Docker跨服务器通信Overlay解决方案(上) Consul单实例 本文主旨 本文为Docker使用Cons ...
- 使用Docker在服务器上部署Ubuntu,本地传文件到docker
使用Docker在服务器上部署Ubuntu,本地传文件到docker 作者:王佳乐 目录 安装Docker 安装Docker 全部安装流程: 登录服务器 ssh username@ip 检查是否已经安 ...
- Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息
Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息 一.通过redis_exporter监控redis 1.1 下载镜像 1.2 运行服务 ...
- Docker跨服务器通信Overlay解决方案(上) Consul单实例
场景 公司微服务快上线了,微服务都是用Docker容器进行部署的,在同一台主机下,把服务都部署上,注册到Nacos的IP与PORT都是内网的IP与Dockerfile中定义的端口号,看起来好像也没什么 ...
随机推荐
- ruby中数组的常用函数
在程序中定义一个数组 在程序中定义一个数组,因为我们在下面说明. fruits = ["apple", "orange", "lemon"] ...
- vuex数据管理-数据适配
由于接口在上线前,不可避免的会出现变动,小则属性名变,大则结构变化.如果处理不当,结构变化时,视图的代码也需要做相应的更改,然后就是容错方法的变动,接着重新自测等,这样,变化成本随着结构的复杂度大大加 ...
- vue2.0读书笔记3 - router、vuex
1.vue的应用场景.优势.劣势 优势 通常情况下,运行时效率更高:一个事件循环仅一次视图更新,无频繁的DOM操作: 数据与视图分离,通过管理数据流,控制页面的展现,便于维护.且高效: 数据双向绑定, ...
- javaScript中用eval()方法转换json对象
var u = eval('('+user+')'); 1.对于服务器返回的JSON字符串,如果jQuery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将 ...
- c#基础学习(0626)之占位符、转义符
占位符 使用方法:先挖个坑,再填个坑. 使用占位符需要注意的地方: 1.你挖了几个坑,就应该填几个坑,如果填多了,没效果,如果填少了,出现异常 异常是指:语法上没有任何错误,只不过再运行的期间,由于某 ...
- Sqlserver 还原
--完整还原 RESTORE DATABASE demoData FROM DISK=N'D:\Backup\demoData.bak'; RESTORE DATABASE { database_na ...
- 线程10--NSOperation的基本操作
一.并发数 (1)并发数:同时执⾏行的任务数.比如,同时开3个线程执行3个任务,并发数就是3 (2)最大并发数:同一时间最多只能执行的任务的个数. (3)最⼤大并发数的相关⽅方法 - (NSInteg ...
- Java学习-jsp内置对象Session
- java自学-基本数据类型
java中也有对数据的运算处理,java中数据分为常量和变量,常量就是直接固定不变的数据,变量是数据可能发生改变的数据,如下: int a=0; a=1+1; 上边代码,a就是变量,初始为0,接下来 ...
- [LeetCode] Next Permutation(一种巧妙的解题方法)
Next Permutation Implement next permutation, which rearranges numbers into the lexicographically nex ...