Docker for mac 使用说明

Docker for mac 使用说明

从2015年开始接触到docker到现在,使用了不少docker管理工具,从最早的boot2docker 到docker toolbox再到现在的docker for mac,发现docker是越来越难用了(后面说)……

我记得第一次使用docker时同时装了boot2docker, docker toolbox两个工具。由于使用习惯问题,更多使用的是boot2docker,直接在后台用命令起动。

记得那时要用docker得办三件事儿:

一是起动boot2docker

$ boot2docker start

二是对初始化

$ boot2docker shellinit

第三步才是运行docker

$ docker run -d -P --name web nginx

做第三步前还得设置环境变量……麻烦,但照提示来,运行没有问题!!

docker toolbox用的少,已经不记得那时长什么样子了,但印象中它们都依赖VirtualBox。

Docker for Mac does not use VirtualBox, but rather HyperKit, a lightweight macOS virtualization solution built on top of Hypervisor.framework in macOS 10.10 Yosemite and higher.

docker for mac 已经大大减化了配置流程,底层也去掉了对VirtualBox的依赖,换成了HyperKit。docker for mac以标准的mac app形式存在,内部还是包含:docker,docker-compose,docker-machine这三个东西,但VM使用已经不在依赖docker-machine了,直接由docker-for-mac(在mac电脑里对应的是docker.app,使用前起动即可)接管守护,对比boot2docker省掉了第一步起动和第二步的初始化。有兴趣可以自行参考官方说明 Docker for Mac vs. Docker Toolbox

docker toolbox 在docker官网product里面是推荐的,主要是考虑到macOS 10.10之前的用户,因为系统没有集成Hypervisor.framework, 如果macOS大于10.10,官方推荐docker for mac,all in ONE,很方便。

最近使用docker最困扰的是无法pull image,在网上找了很多方法,最后还是选择结合shadowsocks翻墙pull,具体方法如下:

1 .安装polipo

brew install polipo

2.通过polipo生成shadowsocks的http代理(重点)

shadowsocks开全局,以为可以pull docker了,但跟本不是那么回事儿……经查shadowsocks是socks5的协议,只有支持这个协议的软件才能使用它的代理功能,比如dropbox就可以设置socks5……docker走的是http和https协议,所以要想办法把socks5转成http,这时就要用到polipo工具了

polipo socksParentProxy=127.0.0.1:1080 proxyAddress="192.168.0.102"

其中127.0.0.1:1080是socks5的端口,192.168.0.102是mac的地址。显示下面的日志就算代理起动成功。

Established listening socket on port 8123.

这个窗口不要关闭!

可以用http://192.168.0.102:8123https://192.168.0.102:8123来代理上网了。

测试一下:

➜  ~ curl ip.gs
当前 IP:140.207.223.158 来自:中国上海上海 联通
➜  ~ export http_proxy=http://localhost:8123
➜  ~ curl ip.gs
当前 IP:45.76.65.36 来自:美国新泽西州皮斯卡特维 choopa.com
➜  ~ unset http_proxy
➜  ~ curl ip.gs
当前 IP:140.207.223.158 来自:中国上海上海 联通

3.配置docker for mac

点docker起动后的图标,在“preferences”里面选proxies,如下图配置即可
screenshot.png

现在可以愉快的docker pull 了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100427.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • leetcode394字符串解码(回溯|栈)「建议收藏」

    leetcode394字符串解码(回溯|栈)「建议收藏」给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:s = “3[a]2[bc]”输出:”aaabcbc”示例 2:输入:s =

  • JavaScript高级[通俗易懂]

    JavaScript高级[通俗易懂]一、高级函数1、函数回调函数回调的本质:在一个函数中,当满足一定的条件,回调函数会当作调用函数的参数传入下面这个例子,faa作为回调函数,fbb作为调用函数。在JavaScript中内置的调用函

  • JDK 1.8 Stream Collectors groupingBy 例子[通俗易懂]

    JDK 1.8 Stream Collectors groupingBy 例子[通俗易懂]在这篇文章中,我们将向您展示如何使用java8 Stream Collectors 对列表分组,计数,求和和排序。1.GroupBy,CountandSort1.1Groupbya List anddisplaythetotalcountofit.(按列表分组,并显示其总数)Java8Example1.javapackagecom.mkyong.java8;i…

  • C++大数运算_size_t几个字节

    C++大数运算_size_t几个字节#include<cstring>#include<string>#include<iostream>usingnamespacestd;constexprautoMAXN=9999;constexprautoMAXSIZE=1000;constexprautoDLEN=4;classBigN{priv…

  • 浅谈滴滴派单算法

    浅谈滴滴派单算法(图片付费下载自视觉中国)作者|王犇刘春阳徐哲来源|滴滴技术(ID:didi_tech)【导读】说到滴滴的派单算法,大家可能感觉到既神秘又好奇,从出租车扬召到…

  • iOS抓包工具Charles的使用

    iOS抓包工具Charles的使用首先,设置手机的网络连接电脑共享wifi,同时设置端口号; 其次,涉及到https抓包时,需要设置手机安装和信任ssl证书,以及设置Charles中ssl的配置。一、下载与安装Charles:charles-proxy-3.10.2.dmgjavaSDK:javaforosx.dmg二、网络环境与手机的配置1、开启电脑共享wifi,同时设置主机代理与端口号(1)系统偏好设置——>共享——>互联网共享;(2)系统偏好设置——>网络——>以太网——>高级——&

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号