利用代理拉取docker镜像

在日常开发中经常会遇到有些镜像在 gcr.io 仓库,其仓库是google提供的,由于国内网络环境的复杂性是无法拉取到这些镜像的,这时候就需要我们想一些办法来实现拉取了。

这里给出了两种解决方法,一种是直接使用代理,这种可以直接拉取远程镜像到本地。另一种是通过中转的方法,先找一个可以直接拉取到镜像的网络,先将存储到本地,然后再转镜像上传到三方国内可以访问的镜像,如我们最常用镜像 hub.docker.com。

代理方法

使用代理方法的时候,如果通过直接设置 http_proxy 和 https_proxy 这两个环境变量是不可行的。主要原因是 docker 并不会使用它们,需要为 docker daemon 服务的设置代理才可以。

设置docker服务代理

sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

将以下内容写入 http-proxy.conf 文件

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="ALL_PROXY=socks5://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp,.docker.io,.docker.com"

上面代理地址是本机开启的代理服务监听端口,如果代理服务在局域网内的其它机器上的话,需要更换为其 ip 地址和端口号。环境变量 NO_PROXY 表示不使用代理的域名或IP。

重启 docker 服务

root@ubuntu:~# systemctl daemon-reload
root@ubuntu:~# systemctl restart docker

验证设置

root@ubuntu:~# systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 ALL_PROXY=socks5://127.0.0.1:7890 NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp,.docker.io,.docker.com

也可以使用命令 docker info 验证

root@ubuntu:~# docker info
...
 Debug Mode: false
 HTTP Proxy: http://127.0.0.1:7890
 HTTPS Proxy: http://127.0.0.1:7890
 No Proxy: localhost,127.0.0.1,docker-registry.example.com,.corp,.docker.io,.docker.com
...

拉取镜像

root@ubuntu:~# docker pull gcr.io/google_containers/pause-amd64:3.0
3.0: Pulling from google_containers/pause-amd64
a3ed95caeb02: Pull complete 
f11233434377: Pull complete 
Digest: sha256:163ac025575b775d1c0f9bf0bdd0f086883171eb475b5068e7defa4ca9e76516
Status: Downloaded newer image for gcr.io/google_containers/pause-amd64:3.0
gcr.io/google_containers/pause-amd64:3.0

此时使用命令 docker images 命令查看,会看到镜像下载成功,大小为747K。

中转方法

对于中转方法这里推荐使用 https://labs.play-with-docker.com,国内用户可以直接访问。方法比较简单,这里只给出几个用到的命令,不再详细介绍。

首先拉取镜像到本地,然后用docker tag 命令修改标签,并上传到 hub.docker.com 的个人账号仓库下

# docker pull gcr.io/google_containers/pause-amd64:3.0
# docker tag gcr.io/google_containers/pause-amd64:3.0 cfanbo/gcr.io_google_containers_pause-amd64:3.0 
# 登录 hub.docker.log
# docker login
# docker push cfanbo/gcr.io_google_containers_pause-amd64:3.0

本地从 hub.docker.com 拉取镜像, 再改为原来的名称+标签名

# docker pull cfanbo/gcr.io_google_containers_pause-amd64:3.0
# docker tag cfanbo/gcr.io_google_containers_pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0

此时镜像已经拉取成功,当前本地存在两个完全一样的镜像,可以将原来使用的临时中转镜像删除。

参考文档

https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

mac手动停止 php-fpm 服务

由于要安装一个docker服务,对外提供端口用的是9000, 和php-fpm的监听端口冲突,所以需要先停止一下php-fpm服务。

多次执行

sudo killall php-fpm

发现过一会php-fpm会自动启动,就算一个一个的进程kill -9 也一样的效果。经过分析这个应该是和php-fpm配置文件 ~/Library/LaunchAgents/homebrew.mxcl.php@7.1.plist 有关。

我们知道 ~/Library/LaunchAgents 针对当前用户的启动项目录,针对这个项目里的一些配置服务有一个 launchctl 命令可以操作,其中有几个命令我们需要知道他的意思

launchctl load 启动plist运行
launchctl unload  卸载
launchctl list 查看所有启动任务

默认当用户登录后,mac系统会对当前目录 ~/Library/LaunchAgents 里的每个配置服务文件自动执行launchctl load 命令。如果我们想停止一个服务的话,则需要执行 launchctl unload 命令即可。

$ LaunchAgents launchctl list | grep php
66054 0 homebrew.mxcl.php@7.1
$ LaunchAgents launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.php@7.1.plist
$ LaunchAgents launchctl list | grep php

然后再用ps 查看确认php-fpm已停止。

mac下添加VIM配色方案

(1)安装vim后,执行命令

whereis vim

你会看到返回结果:vim: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz

注意:/usr/share/vim 为vim为用户提供的共享数据或设置方案选择

(2) 在你的家目录下创建.vimrc

set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set cindent
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
set expandtab

(3)增加配色方案

首先查看你的系统中自带的有哪些,从(1)中我们知道执行命令  ls -l  /usr/share/vim/vim70/colors/

可以看到

-rw-r–r– 1 root root 2588 2011-03-06 blue.vim
-rw-r–r– 1 root root 2809 2011-03-06 darkblue.vim
-rw-r–r– 1 root root  548 2011-03-06 default.vim
-rw-r–r– 1 root root 2399 2011-03-06 delek.vim
-rw-r–r– 1 root root 2812 2011-03-06 desert.vim
-rw-r–r– 1 root root 1666 2011-03-06 elflord.vim
-rw-r–r– 1 root root 2476 2011-03-06 evening.vim
-rw-r–r– 1 root root 3238 2011-03-06 koehler.vim
-rw-r–r– 1 root root 2460 2011-03-06 morning.vim
-rw-r–r– 1 root root 2006 2011-03-06 murphy.vim
-rw-r–r– 1 root root 1037 2011-03-06 pablo.vim
-rw-r–r– 1 root root 2673 2011-03-06 peachpuff.vim
-rw-r–r– 1 root root 2174 2011-03-06 README.txt
-rw-r–r– 1 root root 1239 2011-03-06 ron.vim
-rw-r–r– 1 root root 2720 2011-03-06 shine.vim
-rw-r–r– 1 root root 2419 2011-03-06 slate.vim
-rw-r–r– 1 root root 1627 2011-03-06 torte.vim
-rw-r–r– 1 root root 1840 2011-03-06 zellner.vim

所以我们知道配色方案的名字有morning,evening,desert等等,

如果我们想要将配色方案改为evening,那么我们只需要在.vimrc中增加一行  colorscheme evening 即可。

(4)如果觉得配色方案太少,可以从外部下载配色方案,这里给出一个网址:

http://vimcolorschemetest.googlecode.com/svn/colors/

你可以使用工具wget下载下来,然后将.vim的文件放入/usr/share/vim/vim70/colors/目录下,然后更改.vimrc即可生效。

mac下的yum包管理工具MacPorts

这里推荐安装Homebrew,好像安装这个的用户比较的多的,安装命令也非常的简单。

Mac下面除了用dmg、pkg来安装软件外,比较方便的还有用MacPorts来帮助你安装其他应用程序,跟BSD中的ports道理一样。MacPorts就像apt-get、yum一样,可以快速安装些软件。

除了这个还有一些类似的工具:Homebrew 和 Fink。

Flink是直接编译好的二进制包,MacPorts是下载所有依赖库的源代码,本地编译安装所有依赖,Homebrew是尽量查找本地依赖库,然后下载包源代码编译安装。
Flink容易出现依赖库问题,MacPorts相当于自己独立构建一套,下载和编译的东西太多太麻烦,Homebrew的方式最合理。

下面将MacPorts的安装和使用方法记录在这里以备查。

访问官方网站http://www.macports.org/install.php,这里提供有dmg安装和源码安装两种方式,dmg就多说了,下载MacPorts-2.3.3-10.10-Yosemite.pkg,下一步下一步安装即可。

通过Source安装MacPorts

wget http://distfiles.macports.org/MacPorts/MacPorts-1.9.2.tar.gz
tar zxvf MacPorts-1.9.2.tar.gz
cd MacPorts-1.9.2
./configure && make && sudo make install
cd ../
rm -rf MacPorts-1.9.2*

然后将/opt/local/bin和/opt/local/sbin添加到$PATH搜索路径中 Continue reading

mac下安装GD库FreeType

MacBook Pro安装的新系统10.10.3,PHP环境也是默认就有的,GD库在默认情况下也安装过了,但在使用验证码的时候,提示GD库不支持FreeType,这里我们手动安装一下。

法一:

安装 FreeType

前往苹果官方开源支持:http://www.apple.com/opensource/ 查找并下载GD需要的 zlib/libpng/jpeg/freetype/libgd,这里提供一个包及执行脚本:

百度网盘下载 密码:3euq

也可以单个下载安装,例如:

curl -O http://download.savannah.gnu.org/releases/freetype/freetype-2.4.4.tar.bz2
tar -zxf gd.tar.gz
cd gd
sudo ./install

然后刷新一下 phpinfo(); 或者看一下php支持的库 Continue reading

vmware11下安装mac osx 10.10教程(原创)

推荐此方法:

一. 安装vmware 12 pro的破解补丁(unlocker207)

vmware 12 pro
unlocker207( 204版本在vm11处可以使用,在vm12下不管用,各版本下载http://www.insanelymac.com/forum/files/file/339-unlocker/ )

二. 下载 Yosemite Install(14F27)_10.10.5.cdr 镜像文件。安装方法同windows一样,设置为cd/dvd就可以了。默认vmware只显示iso文件,选择一下显示所有文件即可。

安装过程中会提示一下信息,和下面教程的错误和解决方法都一样。

===============================================

不在推荐使用以下这种方法,网络安装特别的慢,另外版本已经过时。推荐使用上面的方法安装!

在安装前请检查您的硬件配置是否支持,特别注意是”虚拟化”功能,有的主板虽然支持,但默认是关闭状态的,需要在bios里开启才可以。

vt_enable

所需软件:

1.mac 补丁 unlocker
2.mac os x 10.10.3

百度网盘 链接: http://pan.baidu.com/s/1kTKUMZP 密码: csgd

vmware11的安装这里就不再描述了!由于vmware默认下是无法识别mac系统的,所以这里需要打个mac补丁才行,解压unlocker204包运行win-install.cmd 文件,这样在创建系统的时候才会了现一个Mac OS X 选项。 Continue reading

64位WIN7系统无法识别4G内存的解决办法

win7-64Bit下4GB内存只显示3.25GB可用的问题是开起CPU多核加速引起的。
解决方法:
1. WIN+R运行msconfig
2. 点击Boot(启动)选项卡进入Advanced Options(高级选项)
3. 勾选Number of Processors,在下拉菜单中选择核心数,(处理器数: 勾选。最大内存:去勾)
4. 确定退出并重启
5.重启过程中,进入BIOS设置中,可能會有以下選項,設置”Memory Remap Featur” 项设置为 “Enabled”保存重启即可.

我的主板bios里显示的是”Momory Hold Remapping”字样,可能不同主板显示的不一样.