运维实战 容器部分 Docker Machine
Posted 洛冰音
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维实战 容器部分 Docker Machine相关的知识,希望对你有一定的参考价值。
简介
Docker Machine
是 Docker
官方编排(Orchestration)项目之一, 负责在多种平台上快速安装 Docker 环境.
•Docker Machine支持在常规Linux操作系统/虚拟化平台/openstack
/公有云等不同环境下安装配置docker host
.
•Docker Machine 项目基于 Go 语言实现, 目前在 Github 上的维护地址:
简单实践
##下载安装
curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine
chmod +x /tmp/docker-machine
cp /tmp/docker-machine /usr/local/bin/docker-machine
##查看版本
docker-machine version
docker-machine version 0.16.1, build cce350d7
- 创建
machine
machine
指的是docker daemon
主机, 本质就是在host上安装和部署docker
.
- 创建
machine
硬性要求免密登录因此先做免密
ssh-keygen
ssh-copy-id Server2
- 创建主机
如果采用离线安装, 则目标主机上需要提前安装docker
docker-machine create --driver generic --generic-ip-address=172.25.5.2 Server2
通过这一方式可以直接完成各节点的加密连接, 方便的完成安全设置.
回到machine
本身, 实际上在线安装默认调用这一脚本进行安装, 可以通过下载脚本修改其内容达到自定义的效果.
##自定义安装脚本
docker-machine create --engine-install-url "http://172.25.5.1/get-docker.sh" --driver generic --generic-ip-address=172.25.5.2 Server2
安装完成后, 可以在本地直接查看其他节点的Docker
情况
##查看Server2上的容器运行情况
docker `docker-machine config Server2` ps
在安装时, Server2
上就已经生成了/etc/systemd/system/docker.service.d/10-machine.conf
配置文件.
通过查看其信息可以得知docker daemon
启用了TLS
验证功能, docker-machine
已经为其生成好了所需的证书文件.
常用子命令
docker-machine upgrade 更新docker版本
docker-machine config 查看machine配置
docker-machine scp 可以在machine中复制文件
docker-machine ssh 连接machine
docker-machine rm 删除machine
优化
但每次管理远程主机都要输入docker docker-machine config Server2
ps这样的信息显然很麻烦, 可以通过配置环境变量的方式实现.
根据提示执行eval $(docker-machine env server2)
, 可以直接切入目标主机.
但这样仍有不足, SHELL
显示依旧为Server1
, 不利于我们辨识.
安装bash脚本,使得行提示符更加的人性化
base=https://raw.githubusercontent.com/docker/machine/v0.16.1
for i in docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash
do
wget "$base/contrib/completion/bash/${i}" -P /etc/bash_completion.d
done
vim ~/.bashrc
PS1='[\\u@\\h \\W$(__docker_machine_ps1)]\\$ '
以上是关于运维实战 容器部分 Docker Machine的主要内容,如果未能解决你的问题,请参考以下文章