我已经在我的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$
我有什么遗失的东西吗?
答案 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/