Fork me on GitHub

Mac安装使用Docker

  云主机可以选择操作系统镜像快速创建主机,这比虚拟机更便捷了,我们本地也可以这么做了,因为有了 Docker 这个东西。它依赖于 LXC(Linux Container),能从网络上获得配置好的 Linux 镜像,非常容易在隔离的系统中运行自己的应用。也因为它的底层核心是个 LXC,所以在 Mac OS X 下需要在 VirtualBox 中跑一个精小的 LXC(这里是一个 Tiny Core Linux,完全在内存中运行,个头只约 24MB,启动时间小于 5 秒的 boot2docker) 虚拟机,构建在 VirtualBox 中。以后的通信过程就是 docker –> boot2docker –> container,端口或磁盘映射也是遵照这一关系。
  Mac OS X – boot2docker – container 三者之间的关系,这张图很好的说明了
  

安装 VirtualBox

  不多讲, 因要在它当中创建一个 boot2docker-vm 虚拟机

安装 boot2docker

  brew install boot2docker

安装 Docker

  brew install docker

配置 Docker 客户端

  根据自己的情况把下面的内容写到 ~/.bash_profile

1
2
3
4
# boot2docker
export DOCKER_HOST=tcp://192.168.59.103:2376 # tcp://127.0.0.1:4243
export DOCKER_CERT_PATH=/Users/changwen/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1

boot2docker 初始化与启动

  boot2docker init
  完成后就能在 VirtualBox 中看到一个叫做 boot2docker-vm的虚拟机,以后只需用 boot2docker 命令来控制这个虚拟机的行为,启动,停止等。

  boot2docker up
  启动,boot2docker-vm虚拟机,我们能在 VirtualBox 中看到该虚拟机变成 Running 状态

启动 Docker 守护进程

  sudo docker -d。如果这一步有错误也没关系。
  这时执行boot2docker ssh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
changwendeMacBook-Pro:docker changwen$ boot2docker ssh
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 17.03.2-ce, build HEAD : c019897 - Thu Jun 29 02:04:54 UTC 2017
Docker version 17.03.2-ce, build f5ec1e2
docker@boot2docker:~$

鲸鱼背上有集装箱:
  蓝色的大海 —-> 宿主机系统如windows
  鲸鱼 —-> docker
  集装箱 —-> 容器实例 from 来自我们的镜像模板

镜像加速

阿里云镜像加速

  阿里云网站,没有账号注册一个就行:https://dev.aliyun.com/search.html
  

网易云镜像加速

hello-world

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
docker@boot2docker:/$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9db2ca6ccae0: Pull complete
Digest: sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/

  

Mac系统docker run -it -p 9080:8080 tomcat后,在网页上访问localhost:9080没有结果?

  Mac系统限制宿主机无法与外网ping通,所以只能通过宿主机访问了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
docker@boot2docker:~$ ifconfig
br-2c8732a515a9 Link encap:Ethernet HWaddr 02:42:E1:B3:1F:ED
inet addr:172.19.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
... ...
docker@boot2docker:~$ curl 172.19.0.1:9080
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Apache Tomcat/8.5.32</title>
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="tomcat.css" rel="stylesheet" type="text/css" />
</head>
......


参考文章
  Mac OS X 下安装使用 Docker

-----------------本文结束,感谢您的阅读-----------------