Docker-compose无法在boot2docker上正确安装或运行

时间:2015-05-19 00:19:50

标签: docker boot2docker docker-compose

我已经在我的Windows计算机上成功安装了docker-machine,并且我能够在我的Windows框中使用Docker CLI在boot2docker VM上运行docker命令。

我有docker-machine版本0.2.0和docker 1.6.2,而VM产生" 4.0.3-boot2docker"当我跑步" uname -r"在上面。

现在我想安装docker-compose来管理boot2docker VM。 docker-compose是否在我的Windows机器上运行并远程管理VM"如docker那样,或者我是否必须在VM本身上安装它?

在相关的说明中,我尝试通过执行以下操作在我的VM上安装docker-compose:

C:\ docker-machine ssh dev
$ whoami
docker
$ sudo -i
# curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# exit
$ which docker
/usr/local/bin/docker
$ which docker-compose
/usr/local/bin/docker-compose

这很好,但是当我尝试运行docker-compose时它不起作用。

$ docker-compose up
-sh: docker-compose: not found

该文件位于/ usr / local / bin中,它具有与docker完全相同的权限。

docker@dev:/usr/local/bin$ ls -al do*
-rwxr-xr-x    1 root     root      15443675 May 13 21:24 docker
-rwxr-xr-x    1 root     root       5263681 May 19 00:09 docker-compose
docker@dev:/usr/local/bin$

我有什么遗失的东西吗?

2 个答案:

答案 0 :(得分:2)

仔细查看 public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); var user = await this._userService.FindUser(context.UserName, context.Password); if (user == null) { context.SetError("invalid_grant", "The user name or password is incorrect."); return; } var identity = new ClaimsIdentity(context.Options.AuthenticationType); identity.AddClaim(new Claim(ClaimTypes.Sid, user.Id.ToString())); identity.AddClaim(new Claim(ClaimTypes.Role, "user")); identity.AddClaim(new Claim("sub", context.UserName)); var secretKeyBytes = Encoding.UTF8.GetBytes(user.PasswordHash); var props = new AuthenticationProperties( new Dictionary<string, string> { { "dm:appid", user.Id.ToString() }, { "dm:apikey", Convert.ToBase64String(secretKeyBytes) } }); var ticket = new AuthenticationTicket(identity, props); context.Validated(ticket); } 输出。似乎下载网址不再有效。我找到了

curl

,得到

curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-Linux-x86_x64

对我来说,目前release 1.3.2效果很好,即:

{"error":"Not Found"}

注意:在当前CoreOS上使用时,请勿尝试按照curl -L https://github.com/docker/compose/releases/download/1.3.2/docker-compose-Linux-x86_x64 /usr/local/bin/docker-compose输出/opt/bin/docker-compose。而是使用mkdir -p /opt/bin curl -L https://github.com/docker/compose/releases/download/1.3.2/docker-compose-Linux-x86_x64 > /opt/bin/docker-compose (可能需要首先创建目录),即

import os

ROOT = os.path.dirname(__file__)

答案 1 :(得分:0)

您也可以在Windows主机上安装docker-compose。 它将远程管理您的docker。您可以将docker-compose视为docker的一个更抽象的接口。

运行boot2docker init后,运行boot2docker shellinit | Invoke-Expression。这将告诉docker和docker-compose正在运行docker服务器的位置。

有关在Windows上安装它的更多信息,请访问:http://docs.docker.com/installation/windows/