Docker Machine遠端部署docker主機環境
我學習Docker Machine首先肯定思考為什麼要使用它?我直接上伺服器拉取執行映象跑服務也很快啊!為什麼需要這個Docker Machine呢?
首先學習docker我們體會到了容器的好處,保證了線上線下環境的一致性,但是我們確實能發現從映象的下載到容器的執行,我們用了很多的命令去執行,當我們在本地筆記本完成了測試之後,我們把這些容器部署到生產環境時,我們還是需要執行很多指令碼,這確實是一項複雜的工作!
而使用Docker Machine我們可以在本地部署相應的環境就同時完成遠端docker主機環境的部署,可以節省下很多重複的勞動,減少容錯率。
預設本地主機安裝好docker:
一.下載docker-machine:
curl -L https://github.com/docker/mac…uname -s-uname -m >/tmp/docker-machine && install /tmp/docker-machine /usr/local/bin/docker-machine
檢視是否成功:
[root@localhost ~]# docker-machine -v
docker-machine version 0.13.0, build 9ba6da9
二.ssh無密碼登入
本地主機ip:192.168.1.9
遠端主機ip:192.168.1.10
[root@localhost ~]# ssh-keygen
[root@localhost ~]# ssh-copy-id 192.168.1.10
三.開啟machine通訊埠
[root@localhost ~]# firewall-cmd --add-port=2376/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
四.建立docker遠端主機命名farHost
[root@localhost~]# docker-machine create -d generic –generic-ip-address=192.168.1.10 farHost
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
farHost- generic Running tcp://192.168.1.10:2376 v17.12.1-ce
五.改變docker環境變數
[root@node1 ~]# docker-machine env host1
export DOCKER_TLS_VERIFY="1" //使用tls協議
export DOCKER_HOST="tcp://192.168.1.10:2376" //遠端主機docker的ip地址及埠
export DOCKER_CERT_PATH="/root/.docker/machine/machines/farHost" 指明瞭我們docker客戶端在認證的過程中使用證書的路徑
export DOCKER_MACHINE_NAME="farHost"//遠端主機docker名
# Run this command to configure your shell:
# eval $(docker-machine env farHost)
把farHost的環境變數配置到當前的shell中
[root@localhost~]# eval $(docker-machine env farHost)
六.執行容器檢視是否同步
[root@localhost~]# docker run -d busybox
[root@localhost~]# docker-machine ssh host1
[root@farHost~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest f6e427c148a7 6 days ago 1.15MB
[root@farHost~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8d9b5005a264 busybox "sh" 17 seconds ago Up 16 seconds ago modest_joliot
[root@farHost~]# exit
[root@localhost~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8d9b5005a264 busybox "sh" 57seconds ago Up 16 seconds ago modest_joliot
發現本地主機和遠端主機同時都執行了一樣的busybox的容器,即使我們有再多的機器需要部署生產環境,我們也只需要 do once就可以了。
相關文章
- 操作遠端主機 docker 命令Docker
- 用 Docker Machine 建立 Azure 虛擬主機DockerMac
- Linux 上部署 docker,基於 docker 搭建 lnmp 環境LinuxDockerLNMP
- idea 連線遠端 docker 並部署專案到 dockerIdeaDocker
- 在生產環境使用Docker部署應用Docker
- paddleocr 在docker環境下部署Docker
- [Docker系列·8]Docker遠端介面Docker
- 用 Docker 構建 MySQL 主從環境DockerMySql
- Docker MachineDockerMac
- docker-compose 部署 Apollo 自定義環境Docker
- 使用Docker 一鍵部署 LNMP+Redis 環境DockerLNMPRedis
- Docker環境搭建redis叢集(主從模式)DockerRedis模式
- docker之docker-machine用法DockerMac
- Docker Machine 基本DockerMac
- Docker(五):Docker 三劍客之 Docker MachineDockerMac
- docker環境下的RabbitMQ部署,Spring AMQP使用DockerMQSpring
- 使用docker部署livox_camera_calib環境Docker
- docker搭建php環境DockerPHP
- docker搭建lnmp環境DockerLNMP
- Docker 搭建laravel環境DockerLaravel
- docker 搭建 lnmp 環境DockerLNMP
- docker搭建前端環境Docker前端
- docker本地環境搭建Docker
- Docker 搭建MongoDB環境DockerMongoDB
- 常用環境Docker命令Docker
- mac搭建docker、docker-compose環境MacDocker
- docker 1 主機和docker2主機通訊Docker
- 一鍵化安裝 docker,一鍵化部署 lnmp+Redis 環境,快速部署 Laravel 環境DockerLNMPRedisLaravel
- Docker Machine簡介DockerMac
- 使用docker-machineDockerMac
- Docker學習—MachineDockerMac
- Docker Machine 簡介DockerMac
- Docker Machine 詳解DockerMac
- 【Docker】docker-compose檔案快速部署RustDesk遠端桌面平替TeamViewerDockerRustView
- Docker安裝java環境並部署jar包執行DockerJavaJAR
- 在Docker容器環境中用Let's Encrypt部署HTTPSDockerHTTP
- 使用docker搭建環境:安裝tomcat、部署war包DockerTomcat
- 部署伺服器系列三:Linux環境結合Docker搭建前端環境伺服器LinuxDocker前端