mirror of https://github.com/docker/docs.git
Merge remote-tracking branch 'origin/master' into driver-refactor
This commit is contained in:
commit
d2869cbd38
|
@ -369,7 +369,7 @@ func cmdConfig(c *cli.Context) {
|
||||||
|
|
||||||
dockerHost = fmt.Sprintf("tcp://%s:%s", machineIp, swarmPort)
|
dockerHost = fmt.Sprintf("tcp://%s:%s", machineIp, swarmPort)
|
||||||
}
|
}
|
||||||
fmt.Printf("--tls --tlscacert=%s --tlscert=%s --tlskey=%s -H=%s",
|
fmt.Printf("--tlsverify --tlscacert=%s --tlscert=%s --tlskey=%s -H=%s",
|
||||||
cfg.caCertPath, cfg.clientCertPath, cfg.clientKeyPath, dockerHost)
|
cfg.caCertPath, cfg.clientCertPath, cfg.clientKeyPath, dockerHost)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -333,14 +333,13 @@ func TestRunActionForeachMachine(t *testing.T) {
|
||||||
func TestCmdConfig(t *testing.T) {
|
func TestCmdConfig(t *testing.T) {
|
||||||
stdout := os.Stdout
|
stdout := os.Stdout
|
||||||
r, w, _ := os.Pipe()
|
r, w, _ := os.Pipe()
|
||||||
os.Stdout = w
|
|
||||||
|
|
||||||
|
os.Stdout = w
|
||||||
os.Setenv("MACHINE_STORAGE_PATH", TestStoreDir)
|
os.Setenv("MACHINE_STORAGE_PATH", TestStoreDir)
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
os.Setenv("MACHINE_STORAGE_PATH", "")
|
os.Setenv("MACHINE_STORAGE_PATH", "")
|
||||||
os.Stdout = stdout
|
os.Stdout = stdout
|
||||||
w.Close()
|
|
||||||
}()
|
}()
|
||||||
|
|
||||||
if err := clearHosts(); err != nil {
|
if err := clearHosts(); err != nil {
|
||||||
|
@ -366,17 +365,27 @@ func TestCmdConfig(t *testing.T) {
|
||||||
t.Fatalf("error setting active host: %v", err)
|
t.Fatalf("error setting active host: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
outStr := make(chan string)
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
var testOutput bytes.Buffer
|
||||||
|
io.Copy(&testOutput, r)
|
||||||
|
outStr <- testOutput.String()
|
||||||
|
}()
|
||||||
|
|
||||||
set := flag.NewFlagSet("config", 0)
|
set := flag.NewFlagSet("config", 0)
|
||||||
|
|
||||||
testOutput := &bytes.Buffer{}
|
|
||||||
|
|
||||||
go io.Copy(testOutput, r)
|
|
||||||
|
|
||||||
c := cli.NewContext(nil, set, set)
|
c := cli.NewContext(nil, set, set)
|
||||||
|
|
||||||
cmdConfig(c)
|
cmdConfig(c)
|
||||||
|
|
||||||
if strings.Contains(testOutput.String(), "-H=unix:///var/run/docker.sock") {
|
w.Close()
|
||||||
|
|
||||||
|
out := <-outStr
|
||||||
|
|
||||||
|
if !strings.Contains(out, "--tlsverify") {
|
||||||
|
t.Fatalf("Expect --tlsverify")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(out, "-H=unix:///var/run/docker.sock") {
|
||||||
t.Fatalf("Expect docker host URL")
|
t.Fatalf("Expect docker host URL")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
|
---
|
||||||
page_title: Docker Machine
|
page_title: Docker Machine
|
||||||
page_description: Working with Docker Machine
|
page_description: Working with Docker Machine
|
||||||
page_keywords: docker, machine, virtualbox, digitalocean, amazonec2
|
page_keywords: docker, machine, amazonec2, azure, digitalocean, google, openstack, rackspace, softlayer, virtualbox, vmwarevcloudair, vmwarevsphere
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
# Docker Machine
|
# Docker Machine
|
||||||
|
|
||||||
|
|
|
@ -151,7 +151,7 @@ func GetCreateFlags() []cli.Flag {
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "openstack-net-id",
|
Name: "openstack-net-id",
|
||||||
Usage: "OpenStack image name to use for the instance",
|
Usage: "OpenStack network id the machine will be connected on",
|
||||||
Value: "",
|
Value: "",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
|
@ -746,19 +746,6 @@ func (d *Driver) waitForInstanceToStart() error {
|
||||||
return d.waitForSSHServer()
|
return d.waitForSSHServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) sshExec(commands []string) error {
|
|
||||||
for _, command := range commands {
|
|
||||||
sshCmd, err := d.GetSSHCommand(command)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := sshCmd.Run(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d *Driver) sshKeyPath() string {
|
func (d *Driver) sshKeyPath() string {
|
||||||
return path.Join(d.storePath, "id_rsa")
|
return path.Join(d.storePath, "id_rsa")
|
||||||
}
|
}
|
||||||
|
|
|
@ -350,9 +350,17 @@ func (d *Driver) Create() error {
|
||||||
getIp()
|
getIp()
|
||||||
waitForStart()
|
waitForStart()
|
||||||
ssh.WaitForTCP(d.IPAddress + ":22")
|
ssh.WaitForTCP(d.IPAddress + ":22")
|
||||||
if err := d.setupHost(); err != nil {
|
|
||||||
fmt.Fprintf(os.Stderr, "Error setting up host config: %q", err)
|
cmd, err := d.GetSSHCommand("sudo apt-get update && sudo apt-get install -y curl")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if err := cmd.Run(); err != nil {
|
||||||
|
return err
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -438,21 +446,3 @@ func (d *Driver) Upgrade() error {
|
||||||
|
|
||||||
return cmd.Run()
|
return cmd.Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) setupHost() error {
|
|
||||||
log.Infof("Configuring host OS")
|
|
||||||
ssh.WaitForTCP(d.IPAddress + ":22")
|
|
||||||
// Wait to make sure docker is installed
|
|
||||||
for {
|
|
||||||
cmd, err := d.GetSSHCommand(`[ -f "$(which docker)" ] && [ -f "/etc/default/docker" ] || exit 1`)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := cmd.Run(); err == nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
time.Sleep(2 * time.Second)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
|
@ -365,11 +365,19 @@ func (d *Driver) Start() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if s == state.Stopped {
|
switch s {
|
||||||
|
case state.Stopped, state.Saved:
|
||||||
if err := vbm("startvm", d.MachineName, "--type", "headless"); err != nil {
|
if err := vbm("startvm", d.MachineName, "--type", "headless"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Infof("Waiting for VM to start...")
|
log.Infof("Waiting for VM to start...")
|
||||||
|
case state.Paused:
|
||||||
|
if err := vbm("controlvm", d.MachineName, "resume", "--type", "headless"); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
log.Infof("Resuming VM ...")
|
||||||
|
default:
|
||||||
|
log.Infof("VM not in restartable state")
|
||||||
}
|
}
|
||||||
|
|
||||||
return ssh.WaitForTCP(fmt.Sprintf("localhost:%d", d.SSHPort))
|
return ssh.WaitForTCP(fmt.Sprintf("localhost:%d", d.SSHPort))
|
||||||
|
|
Loading…
Reference in New Issue