docker安装on mac os x

本文详细介绍了如何在MacOSX环境下安装Docker容器引擎,包括安装Boot2Docker、配置启动Docker以及通过示例验证安装成功的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

  Docker是一个开源的容器引擎,能提供虚机化,从而达到隔离应用,可移植到任意安装有Docker的机器上运行,这对开发者来说是一个极大的福音。

  由于工作上原因,最近准备开始使用Docker(公司装Docker的时候,linux server内核版本太低,需要重新编译)。

  本文主要讲解如何在Mac OSX上安装Docker。

  

  Tips:由于Docker引擎是使用了特定于Linux内核的特性,所以需要安装一个轻量级的虚拟机(如VirtualBox)来在OSX上运行。

  所以需要下载官方提供的Boot2Docker来运行Docker守护进程。 

二、Docker安装

1. 安装 boot2docker/osx-installer

找到最新的Release版本, https://github.com/boot2docker/osx-installer/releases, 下载PKG,直接安装.



双击下载后的PKG包,进入安装向导:


安装完毕后,会发现你的Application里面多了2个程序:

这就是刚才我们提到的Boot2Docker和VM:


至此,安装步骤完毕。

三、配置启动Docker

在安装完毕后boot2docker后,就可以直接使用boot2docerk这个client command来操作vm中Images了。

1、boot2docker init 命令进行初始化

从日志可以看出,初始化的过程是下载一个boot2docer.iso,然后会用ssh生成用于docker的ssh的公钥和私钥对,用于远程。

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. shengli-mac$ boot2docker init  
  2. Latest release for boot2docker/boot2docker is v1.3.2  
  3. Downloading boot2docker ISO image...  
  4. Success: downloaded https://github.com/boot2docker/boot2docker/releases/download/v1.3.2/boot2docker.iso  
  5. to /Users/shengli/.boot2docker/boot2docker.iso  
  6. Generating public/private rsa key pair.  
  7. Your identification has been saved in /Users/shengli/.ssh/id_boot2docker.  
  8. Your public key has been saved in /Users/shengli/.ssh/id_boot2docker.pub.  
  9. The key fingerprint is:  
  10. ff:7a:53:95:e6:44:27:70:e1:ac:0a:b5:02:35:72:29 shengli@192.168.2.101  
  11. The key's randomart image is:  
  12. +--[ RSA 2048]----+  
  13.   
  14. |      . +.  ..o. |  
  15.   
  16. |      E+..   +...|  
  17.   
  18. |      ..  .   +.o|  
  19.   
  20. |       . . . . +.|  
  21.   
  22. |        S . . +. |  
  23.   
  24. |         + .  .. |  
  25.   
  26. |          o  .   |  
  27.   
  28. |           .o    |  
  29.   
  30. |          .o..   |  
  31.   
  32. +-----------------+  

2、启动

boot2docerk start命令来启动

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. shengli-mac$ boot2docker start  
  2. Waiting for VM and Docker daemon to start...  
  3. .......................ooooooooooooooooooo  
  4. Started.  
  5. Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/ca.pem  
  6. Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/cert.pem  
  7. Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/key.pem  
  8.   
  9. To connect the Docker client to the Docker daemon, please set:  
  10.     export DOCKER_HOST=tcp://192.168.59.103:2376  
  11.     export DOCKER_CERT_PATH=/Users/shengli/.boot2docker/certs/boot2docker-vm  
  12.     export DOCKER_TLS_VERIFY=1  

Ps:这里HOST为192.168.59.103,这个就是以后要访问的虚拟机的地址。

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. shengli-mac$ $(/usr/local/bin/boot2docker shellinit)  
  2. Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/ca.pem  
  3. Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/cert.pem  
  4. Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/key.pem  
  5. shengli-mac$ docker version  
  6. Client version: 1.3.2  
  7. Client API version: 1.15  
  8. Go version (client): go1.3.3  
  9. Git commit (client): 39fa2fa  
  10. OS/Arch (client): darwin/amd64  
  11. Server version: 1.3.2  
  12. Server API version: 1.15  
  13. Go version (server): go1.3.3  
  14. Git commit (server): 39fa2fa  

至此,配置完毕。

如果想进入到虚拟机的控制台,可以使用boot2docker ssh命令

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. shengli-mac$ boot2docker ssh  
  2.                         ##        .  
  3.                   ## ## ##       ==  
  4.                ## ## ## ##      ===  
  5.            /""""""""""""""""\___/ ===  
  6.       ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~  
  7.            \______ o          __/  
  8.              \    \        __/  
  9.               \____\______/  
  10.  _                 _   ____     _            _  
  11. | |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __  
  12. '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|  
  13. | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |  
  14. |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|  
  15. Boot2Docker version 1.3.2, build master : 495c19a - Mon Nov 24 20:40:58 UTC 2014  
  16. Docker version 1.3.2, build 39fa2fa  

四、第一个和第二个Docker程序

对于第一个,相信大家都很了解,Docker版的HelloWorld。这个正好来验证是否安装成功。

1. Docker HelloWorld

运行 docker run hello-world,docker会在本地查找镜像是否存在(肯定不存在了,刚装的= =), 然后docker会去远程Docker registry server去下载这个镜像。
下载后运行这个镜像。
这个镜像程序,会输出一句 Hello from Docker. 
如果看到这句话,说明你的Docker已经正确安装了。
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. shengli-mac$ docker run hello-world  
  2. Unable to find image 'hello-world' locally  
  3. hello-world:latest: The image you are pulling has been verified  
  4. 511136ea3c5a: Pull complete   
  5. 7fa0dcdc88de: Pull complete   
  6. ef872312fe1b: Pull complete   
  7. Status: Downloaded newer image for hello-world:latest  
  8. Hello from Docker.  
  9. This message shows that your installation appears to be working correctly.  
  10.   
  11. To generate this message, Docker took the following steps:  
  12.  1. The Docker client contacted the Docker daemon.  
  13.  2. The Docker daemon pulled the "hello-world" image from the Docker Hub.  
  14.     (Assuming it was not already locally available.)  
  15.  3. The Docker daemon created a new container from that image which runs the  
  16.     executable that produces the output you are currently reading.  
  17.  4. The Docker daemon streamed that output to the Docker client, which sent it  
  18.     to your terminal.  
  19.   
  20. To try something more ambitious, you can run an Ubuntu container with:  
  21.  $ docker run -it ubuntu bash  
  22.   
  23. For more examples and ideas, visit:  
  24.  http://docs.docker.com/userguide/  

2、Docker Nginx

这里会演示下载一个Nginx Server的镜像,然后可以通过本机访问Docker的容器端口,从而访问到部署在Docker中的Nginx。

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. docker run --rm -i -t -p 80:80 nginx  
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. shengli-mac$ docker run --rm -i -t -p 80:80 nginx  
  2. Unable to find image 'nginx' locally  
  3. nginx:latest: The image you are pulling has been verified  
  4. f10807909bc5: Pull complete   
  5. f6fab3b798be: Pull complete   
  6. d21beea329f5: Pull complete   
  7. 04499cf33a0e: Pull complete   
  8. 34806d38e48d: Pull complete   
  9. 343c8475e349: Pull complete   
  10. 92360dceda1a: Pull complete   
  11. 9495a555677d: Pull complete   
  12. 911e2df03930: Pull complete   
  13. 88daddf047c6: Pull complete   
  14. db8a64f62509: Pull complete   
  15. e46b3488b010: Pull complete   
  16. 511136ea3c5a: Already exists   
  17. Status: Downloaded newer image for nginx:latest  

运行后,该命令会listen监听访问,如果成功访问,则会看到nginx的log:




[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 192.168.59.3 - - [07/Dec/2014:02:24:06 +0000"GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36" "-"  
  2. 2014/12/07 02:24:06 [error] 7#0: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.59.3, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.59.103"  
  3. 192.168.59.3 - - [07/Dec/2014:02:24:06 +0000"GET /favicon.ico HTTP/1.1" 404 570 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36" "-"  

将nginx镜像运行在Docker的80端口,那么你访问DOCKER_HOST:80将会看到nginx的欢迎页面。

如果你忘记了dock的host,可以使用:
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. boot2docker ip  
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. shengli-mac$ boot2docker ip  
  2. The VM's Host only interface IP address is: 192.168.59.103  

五、总结

  本文讲解了,如何在Mac OSX安装和部署Docker,没有特别难的步骤,VM启动也是后台进程,很轻量级。

### 安装 Docker on Mac OS 对于希望在Mac操作系统上部署和安装Docker的情况,有两种主要的方法可供选择[^1]。 #### 方法一:命令行安装方式 此方法仅涉及通过命令行工具来下载并安装Docker本身,而不提供图形界面(GUI)客户端的支持。这种方式适合那些偏好使用终端操作或是只需要基本功能而无需额外UI组件的用户。 #### 方法二:Docker Desktop for Mac 推荐大多数开发者采用第二种方案——即安装`Docker Desktop for Mac`应用程序。该应用不仅包含了完整的Docker引擎支持,还集成了Kubernetes集群管理等功能,并提供了直观易用的操作界面,极大地方便了日常开发工作中的容器化项目管理和维护。 为了完成上述任一种安装过程,在执行具体步骤前,请先确保系统的最低硬件及软件需求得到满足;另外值得注意的是,如果选择了第一种纯CLI的方式,则可能还需要手动处理一些依赖项以及后续配置优化等问题。 ```bash # 如果选择命令行方式进行安装,可以按照官方文档指导来进行相应设置。 brew install --cask docker ``` 一旦完成了初步安装之后,无论是哪种途径获得的服务都建议进一步调整加速器以提高国内网络环境下拉取镜像的速度: 编辑或创建位于 `/Users/<YourUsername>/.docker/daemon.json` 文件(注意替换<YourUsername>为实际用户名),加入如下内容以便利用阿里云提供的公共仓库镜像服务加快获取速度: ```json { "registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"] } ``` 最后重启Docker服务使更改生效即可享受更流畅高效的体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值