2018年2月

CentOS 6.x 安装 Docker、Docker Compose 以及切换镜像源记录

首先,这是个大坑,不到万不得已千万不要轻易尝试!!!

由于工作需要,我不得不在 CentOS 6.x 上安装 Docker,而且由于需要一次性部署多个关联服务,不用 docker-compose 的话又会相当麻烦,于是便开始了这段折腾之路。

我这里总结一下主要步骤和注意事项,详细步骤包括具体命令请参见文末的参考链接。

  • 首先 CentOS 6.x 用的报管理器是 yum,yum 只支持 python 2.6 及以下的版本,而 docker compose 只支持 python 2.7 及以上的版本,所以要编译安装 python 2.7,然后把 yum 的几个脚本里的 python 路径改成 2.6 版本的路径,默认的 python 改成 2.7 版本
  • 然后根据参考链接里的步骤通过 epel 安装 1.7.1 版本的 docker,这个版本的 docker 是支持 CentOS 6.x 的最后一个版本了。貌似没有非常靠谱的方案在 CentOS 6.x 的机器上安装更高版本的 docker 了,因为新版本 docker 需要 3.x 的内核,以及其他很多高版本的依赖包,可能会出现问题,不过网上有成功升级内核至 3.10 并且升级 Docker 至 1.9.1 版本的记录,具体可查看文末参考链接
  • 之后通过 pip 安装 docker-compose,需要注意支持 docker 1.7.1 的最后一个版本的 docker-compose 是 1.5.2 版本,所以安装的时候要指定安装这个版本
  • 1.5.2 版本的 docker-compose 只能支持 version 1 的 docker-compose.yml 配置文件,使用新版本的配置文件时需要自己手工改成 v1 的格式
  • daocloud 的镜像加速器亲测不支持 1.7 版本的 docker,中科大的镜像貌似也有点问题,阿里云的镜像可以完美支持,需要注意 1.7 版本的 docker 修改 registry 需要修改 /etc/sysconfig/docker 中的启动参数,详见参考链接

参考链接:

CentOS6.x 安装 Docker 和 Docker Compose
centos 6.5 & docker1.7.1 & docker的阿里云代理镜像设置
CentOs 6.x升级内核到3.10, 安装并升级docker1.9.1

Windows 10 开启 Bash On Ubuntu记录

2018.02.04 更新

这周折腾了半天准备用 WSL (Windows Subsystem for Linux) 搭个开发环境,结果发现这个玩意儿虽然出来一段时间了,但是坑还是真的多。

首先是没有支持 TCP_INFO socket option,参考 php-fpm启动提示Protocol not available (92)该怎么解决呢?,这导致了 php-fpm 监听端口时,日志里会一直打印错误,但是能用,很神奇,而如果 listen 的是 socket 的话,则功能不正常,一直超时。

我发现的还有,如果 mysql 的 data 目录不是放在 WSL 自身硬盘路径内,而是放到 D 盘或者其他外部目录的话,虽然能新建数据库,但是建表有问题。

其他比如不支持升级发行版之类的必然的问题就不多说了,还有就是新版的 Win10 WSL 的安装路径是 C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

所以从亲身的惨痛经历来看,建议还是不要妄想在 Windows 上用虚拟化以外的方案搭建开发环境。

===

步骤记录如下:

1.设置 -> 更新和安全 -> 针对开发人员,选择开启开发人员模式,这一步可能需要重启。

2.控制面板 -> 程序 -> 启用或关闭windows功能,选中 “适用于 Linux 的 Windows 子系统(Beta)”,然后重启。

3.打开 cmd 或者 PowerShell,点击左上角进入设置,在 ‘选项’ 面板中将 “使用旧版控制台” 取消选中,然后重启命令行。

4.在命令行中键入 ‘bash’,然后系统就会让你下载系统文件,选择 ‘y’ 之后就等待下载安装完成吧。

几个注意点:

1.不翻墙的话下载速度很慢,反正电信不翻墙是几乎下载不了的。
2.这个子系统的根目录默认在 %userprofile%\AppData\Local\Lxss\rootfs,这个略坑。

使用xshellputty等ssh终端连接本地bash方式:

1.卸载并重新安装 openssh-server:

sudo apt-get remove --purge openssh-server
sudo apt-get install openssh-server

2.在/etc/ssh/sshd_config中添加或将原有的配置项的值修改为如下:

ListenAddress 0.0.0.0
UsePrivilegeSeparation no
PasswordAuthentication yes

3.运行service ssh --full-restart即可

使用 LaraDock 搭建 Laravel 的 Docker 开发环境

参考链接:基于 LaraDock 在 Docker 中快速构建 Laravel 应用系列教程 —— 搭建开发环境

基本参考上文的步骤即可,不过有如下注意点:

  • LaraDock 现在只支持原生 Docker, Docker Toolbox 这种基于虚拟机的方案需要使用比较老的版本
  • 如果是在 Windows 上使用的话,LaraDock 的 .env 文件 中需要配置 COMPOSE_PATH_SEPARATOR=;COMPOSE_FILE=docker-compose.yml;docker-compose.dev.yml,因为这个分隔符在 Windows 中不支持使用 :
  • 千万不要用 DaoCloud 的加速器,其他加速器貌似也不行,用了这个之后 docker pull laradock/workspace 一直失败,这个包会循环下载直到提示 no space left on device,一开始我以为是 Windows Docker 或者配置的问题,顺着这个方向去查解决方案,查了好久都没头绪,后来把加速器去掉果然好了
  • 设置 proxy 时,格式为 http://host:port,如果 host 是在本机上的的话,需要写成 DockerNAT 那个网卡的 IP 地址,比如 10.0.75.1,另外这个 proxy 的配置也会被 docker 写入到容器中,具体见官网文档