前两天在Mac上安装了Docker,现在将操作步骤记录如下。
1. 进入
https://github.com/boot2docker/osx-installer/releases/latest
2. 在下载页面中点击
Boot2Docker-1.8.0.pkg来下载Boot2Docker
3. 双击安装包来安装Boot2Docker
4. 访问
“应用程序”-->Boot2Docker
当你从你的“应用程序文件夹(Applications)” 来启动 "Boot2Docker" 程序, 程序会做如下事项:
- 打开一个命令行控制台。
- 创建 $HOME/.boot2docker 目录
- 创建 VirtualBox ISO 虚拟机 和 证书 (ssh key)
- 启动 VirtualBox 并运行 docker 进程
到这里就启动完毕了, 你可以运行
docker
命令。你可以运行
hello-word
容器来验证你是否安装成功。
$
docker run hello-world
或使用命令行来初始化和运行
boot2docker
,有如下步骤:
1. 创建一个新的 Boot2Docker 虚拟机
$ boot2docker init
这会创建一个新的虚拟主机,你只需要运行一次这个命令就可以了,以后就不需要了。
2. 启动
boot2docker
虚拟机。
$
boot2docker start
3. 通过 docker 客户端来查看环境变量
$boot2docker shellinit
4. 使用shell命令来设置环境变量
$eval "$(boot2docker shellinit)"
5. 运行 hello-word容器来验证安装
$docker run hello-world
容器端口访问
1. 在 Docker 主机上启动一个 Nginx 容器。
$
docker run -d -P --name web nginx
一般来说,
docker run
命令会启动一个容器,运行这个容器,然后退出。
-d
标识可以让容器在
docker run
命令完成之后继续在后台运行。
-P
标识会将容器的端口暴露给主机,这样你就可以从你的 MAC 上访问它。
2. 使用
docker ps
命令来查看你运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5fb65ff765e9 nginx:latest "nginx -g 'daemon of 3 minutes ago Up 3 minutes 0.0.0.0:49156->443/tcp, 0.0.0.0:49157->80/tcp web
通过这一点我们可以看出
nginx
作为一个进程运行。
3. 查看容器端口
$
docker port web
443/tcp -> 0.0.0.0:49156
80/tcp -> 0.0.0.0:49157
上边的显示告诉我们,
web
容器将 80 端口映射到 Docker 主机的 49157 端口上。
4. 在浏览器输入地址
http://localhost:49157
(localhost 是 0.0.0.0):
没有正常工作。没有正常工作的原因是 `DOCKER_HOST` 主机的地址不是 localhost (0.0.0.0),但是你
可以使用 `boot2docker` 虚拟机的IP地址来访问。
1.获取
boot2docker
主机地址
$
boot2docker ip
192.168.59.103
2. 在浏览器中输入
http://192.168.59.103:49157
成功运行!
1. 通过如下方法,停止并删除
nginx
容器。
$
docker stop web
$
docker rm web
给容器挂载一个卷
当你启动
boot2docker
的时候,它会自动共享
/Users
目录给虚拟机。你可以利用这一点,将本地目录挂载到容器中。这个练习中我们将告诉你如何进行操作。
1. 回到你的 $HOME 目录
$
cd $HOME
2. 创建一个新目录,并命名为
site
$
mkdir site
3. 进入
site
目录。
$
cd site
4. 创建一个
index.html
文件。
$
echo "my new site" > index.html
5. 启动一个新的
nginx
容器,并将本地的
site
目录替换容器中的
html
文件夹。
$
docker run -d -P -v $HOME/site:/usr/share/nginx/html --name mysite nginx
6. 获取
mysite
容器端口
$
docker port mysite
80/tcp -> 0.0.0.0:49166
443/tcp -> 0.0.0.0:49165
7. 在浏览器中打开站点。
8. 现在尝试在
$HOME/site
中创建一个页面
$
echo "This is cool" > cool.html
9. 在浏览器中打开新创建的页面。
10. 停止并删除
mysite
容器。
$
docker stop mysite
$
docker rm mysite