mac docker desktop 历史版本怎么下载 mac docker windows
转载
docker-machine
由docker官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术,甚至可以通过指定driver来定制虚拟机的实现原理(一般是virtualbox)
Docker Machine 是安装和管理 Docker 的工具。它有命令行工具:docker-machine。
安装
1.MACOS安装
可以直接在dockerhub上下载桌面版 Desktop for Mac for mac (https://docs.docker.com/docker-for-mac/) 与 最新的VirtualBox(https://download.virtualbox.org/virtualbox/6.0.10/VirtualBox-6.0.10-132072-OSX.dmg) 后面这个是为了虚拟化
2. windows安装
可以直接在dockerhub上下载桌面版 Desktop for Mac for windows https://docs.docker.com/docker-for-windows/ 与最新的Microsoft Hyper-V (https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/index) 后面这个是为了虚拟化
3. linux安装
1.curl -L https://github.com/docker/machine/releases/download/v0.14.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine
2. chmod +x /tmp/docker-machine
3. cp /tmp/docker-machine /usr/local/bin/docker-machine
下面需要检查安装virtulenv
4.vim /etc/yum.repos.d/virtualbox.repo
[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
5. yum search VirtualBox // 查找具体安装版本
6. yum install -y VirtualBox-6.0 #安装指定版本 注意内核版本要一致
7. /sbin/vboxconfig //重新加载virtualbox服务
8.docker-machine create --driver virtualbox default //创建默认测试
9.//接下来配置环境变量,方便后面直接操作主机
docker-machine env default
eval $(docker-machine env default)
docker-machine env default
命令及其使用等
docker-machine command
active //查看活跃的 Docker 主机
config //输出连接的配置信息
create //创建一个 Docker 主机
env //显示连接到某个主机需要的环境变量
inspect //输出主机更多信息
ip //获取主机地址
kill //停止某个主机
ls //列出所有管理的主机
provision //重新设置一个已存在的主机
regenerate-certs //为某个主机重新生成 TLS 认证信息
restart //重启主机
rm //删除某台主机
ssh SSH //到主机上执行命令
scp //在主机之间复制文件
mount //挂载主机目录到本地
start // 启动一个主机
status // 查看主机状态
stop //停止一个主机
upgrade //更新主机 Docker 版本为最新
url //获取主机的 URL
version //输出 docker-machine 版本信息
help //输出帮助信息
linux使用等 几乎等同于mac使用
docker-machine env default //查看设置的default虚拟主机环境变量等 亦也可修改
docker-machine ssh default // 链接default虚拟主机
使用docker-machine create 后带参数:
--generic-engine-port: 用于Docker守护进程的端口(注意:此标志不适用于boot2docker)。 默认2376
--generic-ip-address: 主机所需IP地址。
--generic-ssh-key: SSH用户私钥的路径。
--generic-ssh-user: 用于连接的SSH用户名。 默认root
--generic-ssh-port: 用于SSH的端口。默认22
--gengine-install-url "https://get.docker.com" 配置Docker主机时候的安装URL
--gengine-opt option 以键值对格式指定所创建Docker引擎的参数
--gengine-insecure-registry option 以键值对格式指定所创建Docker引擎允许访问的不支持认证的注册仓库服务
--gengine-registry-mirror option 指定使用注册仓库镜像
--gengine-label option 为所创建的Docker引擎添加标签
--gengine-storage-driver 存储后端驱动类型
--gengine-env option 指定环境变量
--gswarm 指定使用Swarm
--gswarm-image “swarm:latest” 使用Swarm时候采用的镜像
--gswarm-master 配置集群作为Swarm集群的master节点
--gswarm-discovery Swarm 集群的服务发现机制参数
--gswarm-strategy “spread” Swarm默认调度策略
--gswarm-opt option 任意传递给Swarm的参数
--gswarm-host "tcp://0.0.0.0:3376" 指定地址将监听Swarm master节点请求
--gswarm-addr 从指定地址发送广播加入Swarm集群服务
mac使用
测试创建默认 使用virtualbox
docker-machine create --driver virtualbox default
测试创建默认 通过导入VM将Boot2Docker VM转换为计算机。要转换Boot2Docker VM
docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm dafault
测试创建默认 配置VM磁盘的大小
docker-machine create -d virtualbox --virtualbox-disk-size "100000" default
选项
--virtualbox-boot2docker-url: boot2docker镜像的URL。默认为最新的可用版本。
--virtualbox-cpu-count: 用于创建VM的CPU数。默认为单CPU。
--virtualbox-disk-size: 主机的磁盘大小(MB)。
--virtualbox-host-dns-resolver: 使用主机DNS解析程序。(布尔值,默认为false)
--virtualbox-hostonly-cidr: 仅主机适配器的CIDR。
--virtualbox-hostonly-nicpromisc: 仅主机网络适配器混杂模式。可能的选项是deny,allow-vms,allow-all
--virtualbox-hostonly-nictype: 仅主机网络适配器类型。可能的值为'82540EM'(英特尔PRO / 1000),'Am79C973'(PCnet-FAST III)和'virtio'半虚拟化网络适配器。
--virtualbox-hostonly-no-dhcp: 禁用仅主机DHCP服务器
--virtualbox-import-boot2docker-vm: 要导入的Boot2Docker VM的名称。
--virtualbox-memory: 主机的内存大小(MB)。
--virtualbox-nat-nictype: 指定NAT网络适配器类型。可能的值为'82540EM'(英特尔PRO / 1000),'Am79C973'(PCnet-FAST III)和'virtio'半虚拟化网络适配器。
--virtualbox-no-dns-proxy: 禁用代理到主机的所有DNS请求(布尔值,默认为false)
--virtualbox-no-share: 禁用主目录的安装
--virtualbox-no-vtx-check: 在启动vm之前禁用检查硬件虚拟化的可用性
--virtualbox-share-folder: 挂载指定的目录而不是默认的home位置。
--virtualbox-ui-type: 指定UI类型:(gui SDL 无头 分离)
环境变量和默认值
CLI选项 环境变量 默认
--virtualbox-boot2docker-url VIRTUALBOX_BOOT2DOCKER_URL 最新的boot2docker网址
--virtualbox-cpu-count VIRTUALBOX_CPU_COUNT 1
--virtualbox-disk-size VIRTUALBOX_DISK_SIZE 20000
--virtualbox-host-dns-resolver VIRTUALBOX_HOST_DNS_RESOLVER false
--virtualbox-hostonly-cidr VIRTUALBOX_HOSTONLY_CIDR 192.168.99.1/24
--virtualbox-hostonly-nicpromisc VIRTUALBOX_HOSTONLY_NIC_PROMISC deny
--virtualbox-hostonly-nictype VIRTUALBOX_HOSTONLY_NIC_TYPE 82540EM
--virtualbox-hostonly-no-dhcp VIRTUALBOX_HOSTONLY_NO_DHCP false
--virtualbox-import-boot2docker-vm VIRTUALBOX_BOOT2DOCKER_IMPORT_VM boot2docker-vm
--virtualbox-memory VIRTUALBOX_MEMORY_SIZE 1024
--virtualbox-nat-nictype VIRTUALBOX_NAT_NICTYPE 82540EM
--virtualbox-no-dns-proxy VIRTUALBOX_NO_DNS_PROXY false
--virtualbox-no-share VIRTUALBOX_NO_SHARE false
--virtualbox-no-vtx-check VIRTUALBOX_NO_VTX_CHECK false
--virtualbox-share-folder VIRTUALBOX_SHARE_FOLDER -
--virtualbox-ui-type VIRTUALBOX_UI_TYPE headless
windows使用
测试创建默认
docker-machine create --driver hyperv vm
参数选项:
--hyperv-boot2docker-url: boot2docker ISO的URL。
--hyperv-virtual-switch: 要使用的虚拟交换机的名称。
--hyperv-disk-size: 主机的磁盘大小(MB)。
--hyperv-memory: 主机的内存大小(MB)。
--hyperv-cpu-count: 主机的CPU数量。
--hyperv-static-macaddress: Hyper-V网络适配器的静态MAC地址。
--hyperv-vlan-id: Hyper-V网络适配器的VLAN ID(如果有)。
--hyperv-disable-dynamic-memory: 禁用动态内存管理。
环境变量和默认值
CLI选项 环境变量 默认
--hyperv-boot2docker-url HYPERV_BOOT2DOCKER_URL 最新的boot2docker网址
--hyperv-cpu-count HYPERV_CPU_COUNT 1
--hyperv-disk-size HYPERV_DISK_SIZE 20000
--hyperv-memory HYPERV_MEMORY 1024
--hyperv-static-macaddress HYPERV_STATIC_MACADDRESS 未定义
--hyperv-virtual-switch HYPERV_VIRTUAL_SWITCH 第一次发现
--hyperv-vlan-id HYPERV_VLAN_ID 未定义
--hyperv-disable-dynamic-memory HYPERV_DISABLE_DYNAMIC_MEMORY false
远程部署docker环境
先配置好免密登陆
0) 测试docker-machine是否可行 创建一个默认的
1. docker-machine create -d virtualbox default 或者 docker-machine create --driver virtualbox default
1) ssh -t rsa // 然后一直空格
2) sudo -i //进入root
3) ssh-copy-id <需要配置的远程主机ip> // 示范 ssh-copy-id 192.168.33.119
4) 1. //为本地下载更多镜像源,避免在创建machine时找不到软件包
5) 配置docker ca以及开放端口 //必须步骤
1、创建ca文件夹,存放CA私钥和公钥
mkdir -p /usr/local/ca
cd /usr/local/ca/
2、创建密码
需要连续输入两次相同的密码
openssl genrsa -aes256 -out ca-key.pem 4096
3、依次输入密码、国家、省、市、组织名称等
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
4、生成server-key.pem
openssl genrsa -out server-key.pem 4096
5、把下面的IP换成你自己服务器外网的IP或者域名
openssl req -subj "/CN=192.168.33.224" -sha256 -new -key server-key.pem -out server.csr
6、配置白名单
0.0.0.0表示所有ip都可以连接(但只有拥有证书的才可以连接成功)
echo subjectAltName = IP:192.168.33.224,IP:0.0.0.0 >> extfile.cnf
7、执行命令,将Docker守护程序密钥的扩展使用属性设置为仅用于服务器身份验证
echo extendedKeyUsage = serverAuth >> extfile.cnf
8、执行命令,并输入之前设置的密码,生成签名证书
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out server-cert.pem -extfile extfile.cnf
9、生成客户端的key.pem,到时候把生成好的几个公钥私钥拷出去即可
openssl genrsa -out key.pem 4096
10、执行命令
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
11、执行命令,要使密钥适合客户端身份验证,请创建扩展配置文件
echo extendedKeyUsage = clientAuth >> extfile.cnf
12、生成cert.pem,需要输入前面设置的密码,生成签名证书
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out cert.pem -extfile extfile.cnf
13、删除不需要的文件,两个证书签名请求
rm -rfv client.csr server.csr
14、修改权限,要保护您的密钥免受意外损坏,请删除其写入权限。要使它们只能被您读取,更改文件模式
chmod -v 0400 ca-key.pem key.pem server-key.pem
证书可以是对外可读的,删除写入权限以防止意外损坏
chmod -v 0444 ca.pem server-cert.pem cert.pem
15、归集服务器证书
cp server-*.pem /etc/docker/
cp ca.pem /etc/docker/
16、修改Docker配置,使Docker守护程序仅接受来自提供CA信任的证书的客户端的连接
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd 下面增加
--tlsverify \
--tlscacert=/etc/docker/ca.pem \
--tlscert=/etc/docker/server-cert.pem \
--tlskey=/etc/docker/server-key.pem \
-H tcp://0.0.0.0:2376 \
-H unix:///var/run/docker.sock \
17、重新加载daemon并重启docker
systemctl daemon-reload
systemctl restart docker
18、开放2376端口 开启machine通讯端口 //重中之重
1. firewall-cmd --add-port=2376/tcp --permanent
2. firewall-cmd --reload
19、重启docker
service docker restart
6) 给远程部署(远程机器为centos7.4 若为同系统最好) docker-machine create -d generic --generic-ip-address=192.168.199.108 host108
或者添加用户参数 docker-machine create --driver generic --generic-ssh-key=${HOME}/.ssh/id_rsa --generic-ssh-user=${HOME} --generic-ip-address=192.168.199.108 host108
7) 变更远程docker环境变量
1.docker-machine env host108
显示:
2.eval $(docker-machine env host108)
8)可以ssh远程查看是否镜像与容器同步运行 // docker-machine创建前的本机镜像和容器不会同步 创建后的会自动同步
注意:1.一定要开放对方的2376端口 不然会报错
2. 可以在将要安装的机器上修改 vi /etc/sudoers 添加上
{name}(docker-machine使用的名字) ALL=(ALL) NOPASSWD: ALL 例如 liuxin ALL=(ALL) NOPASSWD: ALL
3. 若一旦设定了docker-machine主从关联之后 若从机关机 主机docker将不能更新/删除/下载等 会卡死
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。