Docker之docker-machine用法详解
什么是docker-machine
Docker Machine 是 Docker 官方提供的一个工具,用于在多种平台和云上快速安装 Docker 环境。Docker Machine 通过安装 VirtualBox 虚拟机,为开发人员提供一种简单的安装Docker的方式,使我们可以在各种平台上创建和管理不同的Docker主机。
安装docker-machine
Docker Machine 可以在官网 https://docs.docker.com/machine/ 上下载对应操作系统的安装包进行安装,或者使用命令行下载和安装命令:
curl -L https://github.com/docker/machine/releases/download/v0.16.0/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
chmod +x /usr/local/bin/docker-machine
创建一个Docker主机
使用docker-machine创建Docker主机需要选择一个driver。docker-machine driver支持的选项,可以通过下面命令获取:
docker-machine create --help
以virtualbox为例,执行如下命令就能在virtualbox中创建一个Docker主机:
docker-machine create --driver virtualbox default
执行上述命令后,就会创建一个名为default的Docker主机。 $ docker-machine ls
命令可以用来查看当前所有的docker-machine。
根据执行结果我们可以发现,default这个机器的状态是stopped,我们需要启动它。
docker-machine start default
当Docker主机处于 running状态时,我们就可以使用docker命令远程控制它了。
在Docker主机上安装Docker
使用如下命令,可以在默认Docker环境中安装Docker所需的所有组件。
docker-machine ssh default
sudo curl -sSL https://get.docker.com | sh
在Docker主机上部署一个Web应用
我们使用如下命令在Docker主机上启动一个简单的Web应用。
$ docker-machine ssh default
$ docker run -d -p 80:80 --name=myweb nginx
其中 -d
参数表示以后台方式运行,-p
参数表示将容器内的80端口与Docker主机的80端口进行映射,--name
参数定义容器的名称,nginx
表示使用 Docker Hub 上的nginx镜像。
此时,在浏览器访问 Docker 主机的 IP 地址就可以看到nginx欢迎界面。
基于docker-compose部署多个服务
docker-compose是Docker官方提供的服务编排工具,参考本文下一篇内容「Docker之docker-compose用法详解」进行更详细的了解。
比如我们可以通过如下docker-compose.yml文件,快速启动WordPress应用和MySQL数据库。
version: '3'
services:
wordpress:
image: wordpress
ports:
- "8000:80"
environment:
WORDPRESS_DB_PASSWORD: example
WORDPRESS_DB_HOST: db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
在Docker主机上执行如下命令,启动这些服务:
$ docker-machine ssh default
$ mkdir wordpress
$ cd wordpress/
$ vim docker-compose.yml #此处需要手动写入docker-compose.yml内容
$ docker-compose up -d
当容器启动完成后,我们可以在浏览器里访问 http://[Docker主机IP:8000/](http://[Docker主机IP:8000/)
, 就可以访问WordPress应用了。
至此,我们已经成功创建了一个 Dcoker 主机并在上面安装了 Docker 环境。同时,我们也学习了如何使用 docker-compose 在单个 Docker 主机上快速部署多个服务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker之docker-machine用法详解 - Python技术站