可以从另一个工作站管理从一个开发人员工作站使用docker-machine命令创建的docker机器.我不是在寻找一个涉及docker swarm的解决方案,而只是寻找一个docker机器.
根据我的理解,当docker-machine在AWS EC2等远程环境中创建机器时,它会创建密钥和证书,然后用于与机器进行基于TLS的通信.因此,理论上如果我将这些密钥和证书复制到另一台开发人员机器上,我应该能够连接到该远程docker机器.
但是,我想知道这是否是实现我想要做的事情的预期方法.IMO这将是Docker社区可能面临的大多数情况,因为多个团队成员需要共享和管理相同的远程docker机器.
任何有关此事的指导都会非常感激.
我知道如何用dns设置创建一个新的docker-machine
docker-machine create -d virtualbox --engine-opt dns=8.8.8.8 my_machine
Run Code Online (Sandbox Code Playgroud)
但是已经有一个"默认"的虚拟机,所以有没有办法改变它的dns?
我在线阅读使用boot2docker的方法,但该工具已被弃用,而docker-machine已取代它.不幸的是,它是如此新鲜,以至于我没有在网上找到这方面的内容.
重新启动Windows后,我无法连接到在Oracle Virtual Box中运行的docker机器.当我启动Docker QuickStart终端时,每件事看起来都很好,它就会出现,它会给我这样的信息:
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
Run Code Online (Sandbox Code Playgroud)
但当我这样做时:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Timeout
Run Code Online (Sandbox Code Playgroud)
和:
? docker images
An error occurred trying to connect: Get http://localhost:2375/v1.21/images/json: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it.
Run Code Online (Sandbox Code Playgroud)
当我尝试重新初始化我的环境时,我得到:
? docker-machine env default
Error checking TLS connection: Error …Run Code Online (Sandbox Code Playgroud) 谁曾尝试过关于Docker Swarm的本教程?
https://docs.docker.com/get-started/part4/
有一节叫做:创建一个集群.我想要做的是使用docker-machine创建几个VM.因为我使用ubuntu16.0.4所以我使用以下命令来获取VirtualBox.
sudo apt-get update
sudo apt-get install virtualbox-5.2
Run Code Online (Sandbox Code Playgroud)
安装VirtualBox后,输入如下命令:
docker-machine create --driver virtualbox myvm1
但它说: sudo:docker-machine:命令未找到
所以我输入另一个命令来检查我是否正确安装了VirtualBox.
sudo virtualbox版本
这将打开Oracle VM VirtualBox Manager,这意味着我确实安装了VirtualBox,但不确定.
谁能帮助我找到合适的解决方案?任何帮助,将不胜感激.
有没有办法强制docker-machine用特定的ip创建docker vm(假设ip可用)?
我想我不明白.首先,我创建了docker-machine:
$ docker-machine create -d virtualbox dev
$ eval $(docker-machine env dev)
Run Code Online (Sandbox Code Playgroud)
然后我写了Dockerfile和docker-compose.yml:
FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
version: '2'
services:
db:
image: postgres
web:
build: .
restart: always
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
links:
- db
Run Code Online (Sandbox Code Playgroud)
最后,我构建并启动了图像:
$ docker-compose build --no-cache
$ docker-compose start
Run Code Online (Sandbox Code Playgroud)
我检查了我的虚拟机的ip
$ docker-machine ip dev
Run Code Online (Sandbox Code Playgroud)
并在我的浏览器中成功打开了该网站.但是当我对代码进行一些更改时 - 没有任何反应.所以我登录到"dev"机器:
$ docker-machine ssh dev
Run Code Online (Sandbox Code Playgroud)
我没找到我的代码!所以我登录了docker"web"图片: …
我在物理Windows7上的VirtualBox中运行CentOS.现在在centOS我有Docker,我需要运行
docker-machine create --driver virtualbox host1
Run Code Online (Sandbox Code Playgroud)
但我得到错误
Error with pre-create check: "VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path"
Run Code Online (Sandbox Code Playgroud)
所以我需要再次安装VirtualBox并在CentOS中安装吗?如果是的话,我该怎么做?
非常感谢
当我docker login使用docker 1.10.1进入私有存储库时,会在我的~/.docker/config.json文件中创建一个条目.这个文件的格式与我看到的.dockercfg文件格式相同吗?是config.json文件与互换.dockercfg文件?
我在Mac OS X上使用Docker与Docker Machine(使用默认的boot2docker机器),我使用docker-compose来设置我的开发环境.
假设其中一个容器名为" stack".现在我想做的是打电话:
docker-composer run stack ssh user@stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
我的公钥(已添加到stackoverflow.com用于验证我的公钥)位于主机上.我希望这个密钥可以在Docker Machine容器中使用,这样我就能够stackoverflow在容器内使用该密钥进行身份验证.最好不要将我的密钥物理复制到Docker Machine.
有没有办法做到这一点?此外,如果我的密钥受密码保护,有没有办法解锁它一次,所以每次注入后我不必手动输入密码?
我正在通过https://docs.docker.com/v1.5/machine/上的Docker Machine用户指南进行操作.
它说:
You can see the machine you have created by running the docker-machine ls command again:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Running tcp://192.168.99.100:2376
The * next to dev indicates that it is the active host.
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我看不到任何机器旁边的*.我需要做什么才能将机器标记为活动状态?这有什么好处吗?
例如,我在Windows 10上运行Docker Machine,使其处于活动状态是否意味着我不必在我的命令中继续指定机器名称,例如 docker-machine env dev
docker-machine ×10
docker ×9
boot2docker ×1
centos ×1
docker-swarm ×1
ssh ×1
ubuntu ×1
virtualbox ×1