ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker(九)--Docker三剑客--Docker Machine

2022-01-16 14:02:36  阅读:172  来源: 互联网

标签:-- server1 server2 machine Docker root docker bash 三剑客


1. Docker Machine简介

- 	Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。
	Docker Machine支持在常规Linux操作系统、虚拟化平台、openstack、公有云等不同环境下安装配置docker host。
	Docker Machine 项目基于 Go 语言实现,目前在 Github 上的维护地址: https://github.com/docker/machine/

2.Docker Machine实践(受控机器已经安装了docker-ce)

2.1 Docker Machine安装:

- 在线安装
	# 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
 
- 本实验采用下载好的Docker Machine

 

[root@server1 ~]# ll docker-machine-Linux-x86_64-0.16.1 
-rwxr-xr-x 1 root root 28201440 Jan 28 14:04 docker-machine-Linux-x86_64-0.16.1
[root@server1 ~]# mv docker-machine-Linux-x86_64-0.16.1 /usr/local/bin/docker-machine
[root@server1 ~]# chmod +x /usr/local/bin/docker-machine

 

2.2 创建machine 

 

- 创建流程:
	ssh免密登陆远程主机
	安装docker软件包
	复制证书
	配置docker daemon
	启动docker
		
- 创建machine:
	machine指的是docker daemon主机,其实就是在host上安装和部署docker。
- 创建machine要求免密登陆远程主机:
	# ssh-keygen
	# ssh-copy-id  目标ip
- 创建主机:(离线安装需要在目标主机提前安装好docker软件包)
	# docker-machine create --driver generic --generic-ip-address=172.25.70.2 server2
[root@server1 ~]# ssh-keygen
[root@server1 ~]# ssh-copy-id server2
[root@server1 ~]# docker-machine create --driver generic --generic-ip-address=172.25.17.2 server2     ##创建
[root@server1 ~]# docker-machine rm server2  ##删除

 

 

查看docker主机上生成的配置文件 

 

[root@server2 ~]# cd /etc/systemd/system/docker.service.d
[root@server2 docker.service.d]# ls
10-machine.conf
[root@server2 docker.service.d]# cat 10-machine.conf
 
[root@server1 server2]# docker-machine config server2

 

 

2.3 远程控制 

machine:
	连接远程docker主机时需要执行以下命令,但不方便:
	# docker `docker-machine  config server12` ps
	# docker-machine env server2 显示访问server2所需的环境变量:
	根据提示执行:eval $(docker-machine env server2),可以直接切入目标主机。但是操作不是很明显,会让人误以为是server1。

 

 

 

 

2.4 人性化的显示 

 

- 安装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)]\$ '
[root@server1 ~]# yum list bash-* 
bash.x86_64   
bash-completion.noarch     ##一定要装       
bash-doc.x86_64    
 
[root@server1 bash_completion.d]#  pwd
/etc/bash_completion.d
[root@server1 bash_completion.d]# ll *.bash
-rwxr-xr-x 1 root root 12211 Jan 28 14:18 docker-machine.bash
-rwxr-xr-x 1 root root  1469 Jan 28 14:18 docker-machine-prompt.bash
-rwxr-xr-x 1 root root  1525 Jan 28 14:18 docker-machine-wrapper.bash
 
 
[root@server1 ~]# vim ~/.bashrc 
[root@server1 ~]# cat ~/.bashrc | grep PS1
PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
 
[root@server1 ~]# eval $(docker-machine env server2)
[root@server1 ~ [server2]]# docker images 

 

3. Docker Machine实践(受控机器没有安装了docker-ce) 

 3.1 配置本地源

 

[root@westos html]# vim docker-ce.repo
[root@westos html]# cat docker-ce.repo 
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=0
 
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/7/extras/$basearch/
gpgcheck=0
 

 

 

 

3.2 配置免密 

 

[root@server1 ~]# ssh-copy-id server3

 

3.3 下载并配置脚本 

[root@server1 html]# curl https://get.docker.com -o  get-docker.sh  ##下载脚本,并修改脚本为本地yum源
[root@server1 html]# vim get-docker.sh 
修改如下(行数):
412 yum_repo="http://172.25.26.250/docker-ce.repo"
471 fi
472 # install the correct cli version first
473 #if [ -n "$cli_pkg_version" ]; then
474 #       $sh_c "$pkg_manager install -y -q docker-ce-cl    i-$cli_pkg_version"
475 #fi
 
 
[root@server1 ~]# scp get-docker.sh root@172.25.26.250:/var/www/html  ##发送到真机默认发布目录

 

 3.4 安装

 

[root@server1 ~]# docker-machine create --driver generic --engine-install-url "http://172.25.26.250/get-docker.sh" --generic-ip-address 172.25.26.3 server3   ##使用基础的引擎generic
 

  

 

3.5 测试 

 

[root@server1 ~]# docker-machine ls  

 

4. docker-machine 子命令 

 

docker-machine upgrade  server2	更新docker版本
docker-machine config  server2	查看machine配置
docker-machine scp 			可以在machine中复制文件
docker-machine ssh			连接machine
docker-machine rm			删除machine

 5. yum 小知识补充

 

[root@server3 ~]# yum install nfs-utils.x86_64
## 安装时选择d,是下载rpm包到本地
[root@server3 ~]# cd /var/cache/yum/x86_64/7Server/
[root@server3 7Server]# ls
docker  rhel7.6  timedhosts
[root@server3 packages]# pwd  ##到对应的源的packages里面,rpm包在此处
/var/cache/yum/x86_64/7Server/rhel7.6/packages

标签:--,server1,server2,machine,Docker,root,docker,bash,三剑客
来源: https://blog.csdn.net/uikotygiug/article/details/122522263

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有