运维实战 容器部分 Docker Machine

Posted 洛冰音

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维实战 容器部分 Docker Machine相关的知识,希望对你有一定的参考价值。

运维实战 容器部分 Docker Machine

简介

Docker MachineDocker 官方编排(Orchestration)项目之一, 负责在多种平台上快速安装 Docker 环境.

•Docker Machine支持在常规Linux操作系统/虚拟化平台/openstack/公有云等不同环境下安装配置docker host.

•Docker Machine 项目基于 Go 语言实现, 目前在 Github 上的维护地址:

image-20210505220923342

简单实践

##下载安装
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这样的信息显然很麻烦, 可以通过配置环境变量的方式实现.

image-20210505230237557

根据提示执行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的主要内容,如果未能解决你的问题,请参考以下文章

运维实战 容器部分 Docker网络

运维实战 容器部分 Docker入门简介

运维实战 容器部分 Docker数据卷

运维实战 容器部分 Docker仓库

运维实战 容器部分 Docker Swarm

运维实战 容器部分 Docker镜像