docker三劍客之docker machine
- docker machine簡介
- docker machine實踐
- 安裝
- 創建machine
- 遠程控制創造的machine
- 給沒有安裝docker-ce的主機,使用docker-machine進行安裝
鏈接: docker machine.
docker machine簡介
- Docker Machine 是 Docker 官方編排(Orchestration)專案之一,
負責在多種平臺上快速安裝 Docker 環境, - Docker Machine支持在常規Linux作業系統、
虛擬化平臺、openstack、
公有云等不同環境下安裝配置docker host, - Docker Machine 專案基于 Go 語言實作,
目前在 Github 上的維護地址: https://github.com/docker/machine/
docker machine實踐
安裝
鏈接: 安裝docker machine的github地址.
$ 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 &&
sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
docker-machine version
[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
[root@server2 ~]# rpm -q docker-ce
docker-ce-20.10.2-3.el7.x86_64
創建machine
- machine指的是docker daemon主機,其實就是在host上安裝和部署docker,
- 創建machine要求免密登陸遠程主機:
ssh-keygen
ssh-copy-id 目標ip - 創建主機:(離線安裝需要在目標主機提前安裝好docker軟體包)
#docker-machine create --driver generic --generic-ip-address=172.25.10.2 server2 - 創建流程:
ssh免密登陸遠程主機
安裝docker軟體包
復制證書
配置docker daemon
啟動docker
遠程控制創造的machine
[root@server1 ~]# ssh-keygen
[root@server1 ~]# ssh-copy-id server2
[root@server1 ~]# docker-machine create --driver generic --generic-ip-address 192.168.0.2 server2
[root@server1 ~]# rpm -qa | grep docker
[root@server1 ~]# docker-machine env server2 #顯示訪問server2所需的環境變數
[root@server2 ~]# netstat -antlp
tcp6 0 0 :::2376 :::* LISTEN 24924/dockerd
docker主機上生成的組態檔:如下 述組態檔中可以看出,docker daemon啟用了TLS驗證功能,docker-machine已經為其生成好了所需的證書檔案,
連接遠程docker主機時需要執行以下命令,但不方便:
docker `docker-machine config server2` ps
[root@server1 ~]# eval $(docker-machine env server2)#可以切入目標主機
[root@server1 ~]# docker run -d --name demo nginx








安裝bash腳本,使得行提示符更加的人性化:
鏈接: bash下載地址.
[root@server1 ~]# cd /etc/bash_completion.d/
[root@server1 ~]# vim .bashrc
PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
[root@server1 ~]# logout
Connection to 192.168.0.1 closed.
[kiosk@foundation50 Desktop]$ ssh root@192.168.0.1
[root@server1 ~]# docker-machine env server2
[root@server1 ~]# eval $(docker-machine env server2)
[root@server1 ~ [server2]]#




給沒有安裝docker-ce的主機,使用docker-machine進行安裝
172.25.0.111主機(真機:作為安裝源)
已經安裝好httpd
mkdir /var/www/html/docker-ce
cd /var/www/html
wget https://get.docker.com 下載下來的檔案就是用來安裝docker-ce

[root@server1 ~]# vim get-docker.sh
412 474行
yum_repo="http://172.25.0.111/docker-ce.repo"
# install the correct cli version first
#if [ -n "$cli_pkg_version" ]; then
# $sh_c "$pkg_manager install -y -q docker-ce-cli-$cli_pkg_version"
#fi
$sh_c "$pkg_manager install -y -q docker-ce"


將rpm全部安裝好之后,yum install createrepo -y
createrepo . 搭建yum倉庫
在安裝的時候有repodata目錄才能讀到
[root@server3 yum.repos.d]# yum install docker-ce docker-ce-cli
[root@server3 docker-ce]# cd /var/cache/yum/x86_64/7Server/extras/packages/
[root@server3 packages]# cp * /var/www/html/docker-ce/
[root@server3 docker-ce]# cd /var/cache/yum/x86_64/7Server/
[root@server3 7Server]# cd docker/
[root@server3 docker]# ls
[root@server3 packages]# cp * /var/www/html/docker-ce/
[root@server3 docker-ce]# yum install -y createrepo
[root@server3 docker-ce]# createrepo .
[root@server3 docker-ce]# ls
[root@server3 docker-ce]# systemctl start httpd
[root@server3 yum.repos.d]# vim docker-ce.repo
[docker]
name=docker-ce
baseurl=http://192.168.0.3/docker-ce
gpgcheck=0
[root@server3 yum.repos.d]# yum clean all
[root@server3 yum.repos.d]# yum repolist
[root@server3 yum.repos.d]# yum install docker-ce docker-ce-cli

ssh免密登陸遠程主機
創建主機的時候直接安裝docker-ce




轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/257372.html
標籤:其他
下一篇:如何用阿里云給自己發送天氣預報
