centos7下安装docker(14安装docker machine)
为所有host安装和配置docker
之前我们手工安装了一个docker host:
1.安装https CA证书
2.添加GPG key
3.添加docker apt源
4.安装docker
对于多主机的环境手工方式效率低且不容易保证一致性,只对这个问题,docker给出的解决方案是docker machine
用docker machine可以批量安装和配置docker host,这个host可以是本地的虚拟机,物理机,也可以是公有云中的云主机
Docker Machine支持在不同环境下安装配置docker host,包括:
1.常规Linux操作系统;
2.虚拟化平台-VirtualBox,VMware,Hyper-V
3.Openstack
4.公有云-Amazon Web Services,Microsoft Azure,Google Compute Engine,Digital Ocean等
Docker Machine为这些环境起了一个统一的名字:provider
对于特定的某个provider,Docker Machine使用相应的driver安装配置docker host
安装docker machine
实验环境:主机名 IP 操作系统
docker 192.168.7.222 centos7
docker1 192.168.7.235 centos7
docker2 192.168.7.231 centos7
我将在192.168.7.222 docker上安装docker machine,然后通过docker machine命令在其他两台host上部署docker
安装docker machine,参照官方文档:https://docs.docker.com/machine/install-machine/#install-machine-directly
执行docker-machine version验证命令是否可用
注:建议根据官方文档搭建
安装bash completion script,这样bash可以通过tab来补全命令和参数:
下载completion script:docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash 将其放在/etc/bash_completion.d目录下
命令为:scripts=( docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash ); for i in "${scripts[@]}"; do sudo wget https://raw.githubusercontent.com/docker/machine/v0.13.0/contrib/completion/bash/${i} -P /etc/bash_completion.d; done
然后将如下代码添加到~/.bashrc
PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
若出现一下情况:
更改~/.bashrc,在bashrc中添加以下三行:
source /etc/bash_completion.d/docker-machine-wrapper.bash
source /etc/bash_completion.d/docker-machine-prompt.bash
source /etc/bash_completion.d/docker-machine.bash
重新source下bashrc
source /root/.bashrc
到此位置docker-machine就安装完成了!
如何卸载docker-machine,可以参考官方文档!
创建machine
对于docker machine来将,术语Machine就是运行docker daemon的主机,创建machine就是在host上安装docker
执行docker-macine ls查看当前的machine
当前还没有一个machine,接下来我们创建第一个machine:docker1-192.168.7.235
创建machine要求能够无密码远程登陆主机,所以需要下通过如下命令将ssh key拷贝到192.168.7.235
1.ssh-keygen -t rsa 在192.168.7.222上面生成密钥
注:这里要回车三次
2.在用户的家目录下生成一个 .ssh的 目录
3.在 .ssh下存放生成的密钥文件
id_rsa :生成的私钥文件
id_rsa.pub:生成的公钥文件
如果希望公钥生效,需满足以下两个条件:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600
3.将密钥拷贝到192.168.7.235里面
ssh-copy-id
4.通过ssh 192.168.7.235测试是否成功
一切准备就绪,执行docker-machine create创建第一个docker1
docker-macine create --driver generic --generic-ip-address=192.168.7.235 docker1
因为我们用的是普通的linux部署docker,所以使用generic driver通用driver,其他driver可以参考:https://docs.docker.com/machine/drivers/
我们的docker1已经创建成功,步骤如下
1.ssh远程登录主机
2.安装docker
3.复制证书
4.配置docker
5.启动docker
再次执行;docker-machine ls
现在看到docker1已经运行
我们登陆到docker1查看具体配置
在/etc/systemd/system/docker.service.d下文件名是:10-machine.conf
注:-H tcp://0.0.0.0:2376 使docker daemon接受远程连接
--tls*对远程连接启用安全认证和加密
注:主机名hostname也会被更改
使用同样的方法创建docker2
docker-machine create --driver generic --generic-ip-address=192.168.7.231 docker2
由于我忘记传送密钥,导致的报错
当我把密钥传进去后重新创建docker2时提示:docker2已经存在,通过docker-machine ls查看docker2已经处于运行的状态,无法识别docker版本
注:这里的docker的版本还不能指定,默认安装的是repo的版本
可以使用docker-machine rm -f删除docker2
重新传送密钥,然后重新创建docker2
在密钥传送不成功以及网络无法ping通baidu的情况下,终于将docker2建好了:
盗图:
管理machine:
学习无需登录machine就可以执行docker相关的命令
1.docker-machine env docker1显示访问docker1需要的所有环境变量
根据提示,执行eval $(docker-machine env docker1)
可以看到,命令提示符变成了docker1,其原因是我们之前在/root/.bashrc里面配置了 PS1='[\u@\h \W$(__docker_machine_ps1)]\$ ',用于显示当前的docker host
注:如果我们输入eval $(docker-machine env docker1)没有显示出docker1的命令提示符,我们可以重新输入一遍 PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
在此状态下执行的docker命令其效果都相当于在docker1上执行
docker-machine子命令:
docker-machine upgrade docker1 docker2批量更新docker host版本
docker-machine config docker1 查看host的docker daemon配置
docker-machine start/status/restart/kill docker1是对docker host所在的系统的操作,不是对服务的操作
docker-machine scp是在docker host之间复制
docker-machine rm docker1删除一个docker host
其他请参考
本文转自不要超过24个字符博客51CTO博客,原文链接http://blog.51cto.com/cstsncv/1980580如需转载请自行联系原作者
cstsncv
centos7下安装docker(14安装docker machine)相关推荐
- CentOS7下使用yum快速安装配置oracle数据库
2019独角兽企业重金招聘Python工程师标准>>> CentOS7下使用yum快速安装配置oracle数据库 2017年10月10日 15:29:23 aladdin_sun 阅 ...
- SVN CentOS7 下配置svn的安装及基础配置介绍
CentOS7 下配置svn的安装及基础配置介绍 by:授客 QQ:1033553122 目录 一. 实践环境... 1 二. 安装操作系统... 1 三. ...
- CentOS7下源码编译安装MySQL5.6.4
CentOS7下源码编译安装MySQL5.6.4 写这篇博客的主要原因是:请看上一篇博客:CentOS7下更改MySQL5.6.4默认的数据存储位置.对,当初通过rpm安装的mysql5.6.4,一切 ...
- Centos7下使用rpm包安装mysql5.6数据库
Centos7下使用rpm包安装mysql5.6数据库 环境 [root@mysql01 ~]# uname -r 3.10.0-514.el7.x86_64 [root@mysql01 ~]# ca ...
- centos7 nginx php整合,Centos7下,宿主机nginx配合docker环境的php-fpm
一.安装docker并启动 yum install docker systemctl start docker 二.安装nginx CentOS 7默认不能从yum中安装nginx,原因可以自己搜索一 ...
- CentOS7 下配置svn的安装及基础配置介绍
一. 实践环境 二. 安装操作系统 三. 安装SVN 四. 基础配置 五. 启动SVN 六. 客户端访问 ...
- centos7下没有iptables进行安装或更新
从centos7开始使用linux,之前版本的没有深入了解过,今天要开放个端口,需要有防火墙的相关操作,从网上查资料都是编辑/etc/sysconfig目录下面的iptables文件,可我进入这个文件 ...
- Centos7下Confluence5.6.6安装
一.Confluence简介 Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki.使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息.文档协作.集体讨论 ...
- centos7 访问php页面显示源码_运维干货分享:centos7下源码编译安装php-7.1.5(脚本)...
PHP简介: PHP是一种创建动态交互性站点的强有力的服务器端脚本语言.PHP是目前动态网页开发中使用最为广泛的语言之一.PHP能运行在包括Windows.Linux等在内的绝大多数操作系统环境中. ...
- 7.1 pdo 宝塔面板php_运维干货分享:centos7下源码编译安装php-7.1.5(脚本)
PHP简介: PHP是一种创建动态交互性站点的强有力的服务器端脚本语言.PHP是目前动态网页开发中使用最为广泛的语言之一.PHP能运行在包括Windows.Linux等在内的绝大多数操作系统环境中. ...
最新文章
- hp远程桌面服务器,hp服务器通过ilo远程安装操作系统
- conda-forge,conda,-c的理解
- 零基础自学python的建议-python回顾——对零基础学者的建议(一)
- 一种加速WiFi模块一键配网速度的实现
- I - The Mad Mathematician FZU - 2042(未解决)
- 计算机设备报废流程图,报废流程图.ppt
- php收购,php中文网收购全国用户量最大的phpstudy集成开发环境揭秘
- SSL-Explorer 安装配置
- Java JSP技术详解:(一)JSP 简介
- 7年了,为什么智慧城市还不智慧?
- php 安全禁止函数,禁用危险函数-PHP安全
- Mycat 使用navicat连接 报: no datanode found please check tables defined is schema:test
- Dynamic Scoping (动态范围)
- AWS中国 Kubernetes 搭建指南
- DTCC2014:钱岭:电信运营商大数据平台和应用实践
- PID原理及python简单实现与调参
- flinkCDC报错:but this is no longer available on the server
- Backtrack5 R1 中文支持 ibus输入法
- Java打包混淆之Allatori
- 开机自动宽带拨号连接(转)