docker compose、docker machine、docker swarm 这三个项目都是docker的原生支持,号称docker三剑客
docker machine介绍:
Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。
Docker Machine 项目基于 Go 语言实现,目前在 Github 上的维护地址: https://github.com/docker/machine/
文章目录
提到 Docker 我们必须要知道它包含了三部分内容:
- Docker daemon
- 一套与 Docker daemon 交互的 REST API
- 一个命令行客户端
1.安装docker-machine:
2.生成免密:
远程连接使用ssh协议,所以要免密
3.真机联网:拉取index.html文件,用于远程安装
wget https://get.docker.com/
拉取后修改三处:版本和yum源
完成后将其放在apache默认发布目录下,作为默认发布文件,让远程主机自动读取
4.在远程主机修改配置
vim /etc/yum.conf #yum仓库的全局配置,将gpgcheck默认改为0
vim /etc/os-release #更改系统标示【该index.html文件中不读取rhel】
5.安装成功
使用docker-machine ls 来查看machine的状态。
如果安装失败:
Error creating machine: Error running provisioning: something went wrong running an SSH command
#连接问题
Error creating machine: Error detecting OS: Too many retries waiting for SSH to be available. Last error: Maximum number of retries (60) exceeded
#错误信息没删除
1.在docker-machine中删除已生成的machinexinxi
2.删除生成的yum.repo文件
3.排错【ssh问题,通信问题,火墙问题等】
4.再次尝试创建machine
远程管理:
docker-machine env server4 #查看远程连接需要的环境
docker -H tcp://172.25.12.4:2376 ps #尝试远程连接 【会失败】
eval $(docker-machine env server4) #只远程切换到目标docker环境
用过区别不同主机上已经加载的镜像或者容器,来区别不同的docker环境
上面这种连接很明显并不合适,因为它不能直观显示是否连接到了远程docker主机。
方式二:
下载以下三个文件到指定目录
docker-machine.bash
docker-machine-prompt.bash
docker-machine-wrapper.bash
vim ~/.bashrc #添加下面命令
PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
然后:
source ~/.bashrc #刷新,使生效
如果出现-bash: _docker_machine_ps1: command not found 【原因是没有提前使上面三个文件生效】
那么更改~/.bashrc如下图,再source
切换测试:很明显,界面有提示切换到了server4!
docker-machine 子命令:
docker-machine upgrade server2 更新docker版本
docker-machine config server2 查看machine配置
docker-machine scp 可以在machine中复制文件
docker-machine ssh 连接machine
docker-machine rm 删除machine
大大的小小阳