当前位置:   article > 正文

使用boot2docker管理docker

boot2docker查看服务

在Mac上使用Docker,需要使用boot2docker建立docker运行的虚拟机宿主环境。安装boot2docker可以简单的通过brew进行安装。

brew install boot2docker

###启动boot2docker

成功安装之后,使用以下方式启动docker

boot2docker init

以上命令只需要执行一次即可,它创建了Docker运行所需要的虚拟机环境。以后运行的时候,需要先开启docker虚拟机

boot2docker start

这样就启动了Docker的虚拟机环境,使用命令boot2docker shellinit查看Docker客户端的环境变量

  1. $ boot2docker shellinit
  2. Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/ca.pem
  3. Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/cert.pem
  4. Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/key.pem
  5. export DOCKER_HOST=tcp://192.168.59.103:2376
  6. export DOCKER_CERT_PATH=/Users/mylxsw/.boot2docker/certs/boot2docker-vm
  7. export DOCKER_TLS_VERIFY=1

你可以手动的执行输出的后面三条export命令设置环境变量,也可以使用下面的方法自动设置

$ eval "$(boot2docker shellinit)"

到此为止,boot2docker已经运行,并且docker的客户端环境已经建立,要验证是否成功,运行下面的命令

  1. $ boot2docker status
  2. running
  3. $ docker version
  4. Client version: 1.3.2
  5. Client API version: 1.15
  6. Go version (client): go1.3.3
  7. Git commit (client): 39fa2fa
  8. OS/Arch (client): darwin/amd64
  9. Server version: 1.6.2
  10. Server API version: 1.18
  11. Go version (server): go1.4.2
  12. Git commit (server): 7c8fca2

使用命令boot2docker ssh:

boot2docker-ssh

如果在执行docker命令的时候出现类似如下错误 dial unix /var/run/docker.sock: no such file or directory 是因为没有设置正确的环境变量导致的,执行命令 eval "$(boot2docker shellinit)" 重新设置环境变量即可。

###基本操作

DOCKER_HOST上启动一个Nginx容器

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

上述命令中,docker run命令启动一个容器运行,然后退出,-d选项指定该容器docker run命令执行完成后在后台运行。-P选项将容器开放的端口暴露给宿主机,这样我们就可以访问它们了。

要查看当前运行了哪些容器,使用docker ps命令

docker-ps

查看容器开放了哪些端口,使用命令docker port

  1. $ docker port web
  2. 443/tcp -> 0.0.0.0:32769
  3. 80/tcp -> 0.0.0.0:32768

接下来访问127.0.0.1:32768,应该就能看到Nginx的欢迎页面了。

在Mac下,使用boot2docker的时候,访问127.0.0.1是不行的,因为docker的宿主机是boot2docker的虚拟机,因此需要使用虚拟机的ip访问boot2docker ip获取ip后访问。

boot2docker-ip 访问192.168.59.103:32768即可

要停止或者删除正在运行的容器,使用下列命令

  1. $ docker stop web
  2. $ docker rm web

要关闭boot2docker使用命令boot2docker stop

###在Container中挂载卷

当启动boot2docker的时候,它会在虚拟机上自动共享Mac上的/Users目录,在Docker容器中,可以将该目录中的内容挂载到Docker容器中。

  1. docker@boot2docker:~$ ll /Users/
  2. total 0
  3. drwxr-xr-x 1 docker staff 374 Dec 4 08:42 Guest/
  4. drwxrwxrwx 1 docker staff 306 Apr 10 16:19 Shared/
  5. drwxr-xr-x 1 docker staff 2890 May 19 09:32 mylxsw/

在Mac的Downloads目录中建立site/index.hml文件,如下

  1. $ pwd
  2. /Users/mylxsw/Downloads
  3. $ tree
  4. .
  5. └── site
  6. └── index.html
  7. 1 directory, 1 file
  8. $ cat site/index.html
  9. my new site: aicode.cc

启动docker容器

  1. $ docker run -d -P -v $HOME/Downloads/site:/usr/share/nginx/html --name mysite nginx
  2. 3ec8c748b423b9ff30efaab6e4c88857c45831cca8a46e97950808635c2dd98d
  3. $ docker port mysite
  4. 443/tcp -> 0.0.0.0:32770
  5. 80/tcp -> 0.0.0.0:32771
  6. $ boot2docker ip
  7. The VM's Host only interface IP address is: 192.168.59.103

这里docker run-v参数指定了要挂载的卷,也可以使用--volume,格式为-v /host:/container

访问http://192.168.59.103:32771/可以看到输出index.html的内容

  1. $ curl http://192.168.59.103:32771/
  2. my new site: aicode.cc

参考:

转载于:https://my.oschina.net/agiledev/blog/423927

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/827350
推荐阅读
相关标签
  

闽ICP备14008679号