欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Docker Machine远程部署Docker的方法

程序员文章站 2022-06-27 14:34:18
一、docker machine概要 docker machine发布之前,你可能会遇到以下问题: ①你需要登录主机,按照主机及操作系统特有的安装以及配置步骤安装d...

一、docker machine概要

docker machine发布之前,你可能会遇到以下问题:

①你需要登录主机,按照主机及操作系统特有的安装以及配置步骤安装docker,使其能运行docker容器。
②你需要研发一套工具管理多个docker主机并监控其状态。
③你在本地开发,产品部署在公有云平台,你希望能尽可能的减小两个环境的差异性

docker machine的出现解决了以上问题。

①docker machine简化了部署的复杂度,无论是在本机的虚拟机上还是在公有云平台,只需要一条命令便可搭建好docker主机
②docker machine提供了多平台多docker主机的集中管理
③docker machine 使应用由本地迁移到云端变得简单,只需要修改一下环境变量即可和任意docker主机通信部署应用。

二、docker machine在远程主机部署docker

环境:

  1. docker-machine主机:192.168.1.9 docker版本:docker-ce
  2. docker主机:192.168.1.10

步骤:

①更新curl

yum update curl -y

②安装docker-machine

安装可参考docker-machine官网

linux下载路径:

复制代码 代码如下:
curl -l -s-uname -m >/tmp/docker-machine && install /tmp/docker-machine /usr/local/bin/docker-machine

按需求直接复制粘贴安装即可

[root@node1 ~]# docker-machine -v
docker-machine version 0.13.0, build 9ba6da9

③创建ssh密钥对,实现两主机无密登录

[root@node1 ~]# ssh-keygen
[root@node1 ~]# ssh-copy-id 192.168.1.10

④为本地下载更多镜像源,避免在创建machine时找不到软件包

[root@node1 ~]# wget -o /etc/yum.repos.d/centos-base.repo http://mirrors.aliyun.com/rep... #此为阿里云centos7镜像源
[root@node1 ~]# yum install epel-release #第三方源

⑤开启machine通讯端口

[root@node1 ~]# firewall-cmd --add-port=2376/tcp --permanent
[root@node1 ~]# firewall-cmd --reload

⑥创建docker主机,命名host1

[root@node1 ~]# docker-machine create -d generic --generic-ip-address=192.168.1.10 host1
running pre-create checks...
creating machine...
(swarm-master) no ssh key specified. assuming an existing key at the default location.
waiting for machine to be running, this may take a few minutes...
detecting operating system of created instance...
waiting for ssh to be available...
detecting the provisioner...
provisioning with centos...
running...
[root@node1 ~]# docker-machine ls
name active driver state url swarm docker errors
host1 - generic running tcp://192.168.1.10:2376 v17.12.1-ce

⑦变更docker环境变量

[root@node1 ~]# docker-machine env host1
export docker_tls_verify="1"
export docker_host="tcp://192.168.1.10:2376"
export docker_cert_path="/root/.docker/machine/machines/host1"
export docker_machine_name="host1"
# run this command to configure your shell: 
# eval $(docker-machine env host1)
[root@node1 ~]# eval $(docker-machine env host1)

⑧运行容器查看两端是否同步

[root@node1 ~]# docker run -d busybox
[root@node1 ~]# docker-machine ssh host1
[root@host1 ~]# docker image ls
repository tag image id created size
busybox latest f6e427c148a7 6 days ago 1.15mb
[root@host1 ~]# docker ps 
container id image command created status ports names
8d9b5005a264 busybox "sh" 17 seconds ago up 16 seconds ago modest_joliot
[root@host1 ~]# exit
[root@node1 ~]# docker ps
container id image command created status ports names
8d9b5005a264 busybox "sh" 57seconds ago up 16 seconds ago modest_joliot

镜像容器同步测试成功

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。