mirror of https://github.com/docker/docs.git
Update cloud-ex-machine-ocean.md
This commit is contained in:
parent
b5a42327f2
commit
aab444d99b
|
@ -27,23 +27,23 @@ If you have not done so already, go to <a href="https://digitalocean.com" target
|
||||||
|
|
||||||
To generate your access token:
|
To generate your access token:
|
||||||
|
|
||||||
1. Go to the Digital Ocean administrator console and click **API** in the header.
|
1. Go to the Digital Ocean administrator console and click **API** in the header.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
2. Click **Generate New Token** to get to the token generator.
|
2. Click **Generate New Token** to get to the token generator.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
3. Give the token a clever name (e.g. "machine"), make sure the **Write (Optional)** checkbox is checked, and click **Generate Token**.
|
3. Give the token a clever name (e.g. "machine"), make sure the **Write (Optional)** checkbox is checked, and click **Generate Token**.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
4. Grab (copy to clipboard) the generated big long hex string and store it somewhere safe.
|
4. Grab (copy to clipboard) the generated big long hex string and store it somewhere safe.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
This is the personal access token you'll use in the next step to create your cloud server.
|
This is the personal access token you'll use in the next step to create your cloud server.
|
||||||
|
|
||||||
### Step 3. Install Docker Machine
|
### Step 3. Install Docker Machine
|
||||||
|
|
||||||
|
@ -57,111 +57,127 @@ To generate your access token:
|
||||||
|
|
||||||
2. At a command terminal, use `docker-machine ls` to get a list of Docker Machines and their status.
|
2. At a command terminal, use `docker-machine ls` to get a list of Docker Machines and their status.
|
||||||
|
|
||||||
$ docker-machine ls
|
```
|
||||||
NAME ACTIVE DRIVER STATE URL SWARM
|
$ docker-machine ls
|
||||||
default * virtualbox Running tcp:////xxx.xxx.xx.xxx:xxxx
|
NAME ACTIVE DRIVER STATE URL SWARM
|
||||||
|
default * virtualbox Running tcp:////xxx.xxx.xx.xxx:xxxx
|
||||||
|
```
|
||||||
|
|
||||||
6. Run some Docker commands to make sure that Docker Engine is also up-and-running.
|
6. Run some Docker commands to make sure that Docker Engine is also up-and-running.
|
||||||
|
|
||||||
We'll run `docker run hello-world` again, but you could try `docker ps`, `docker run docker/whalesay cowsay boo`, or another command to verify that Docker is running.
|
We'll run `docker run hello-world` again, but you could try `docker ps`, `docker run docker/whalesay cowsay boo`, or another command to verify that Docker is running.
|
||||||
|
|
||||||
$ docker run hello-world
|
```
|
||||||
|
$ docker run hello-world
|
||||||
|
|
||||||
Hello from Docker.
|
Hello from Docker.
|
||||||
This message shows that your installation appears to be working correctly.
|
This message shows that your installation appears to be working correctly.
|
||||||
...
|
...
|
||||||
|
```
|
||||||
|
|
||||||
### Step 4. Use Machine to Create the Droplet
|
### Step 4. Use Machine to Create the Droplet
|
||||||
|
|
||||||
1. Run `docker-machine create` with the `digitalocean` driver and pass your key to the `--digitalocean-access-token` flag, along with a name for the new cloud server.
|
1. Run `docker-machine create` with the `digitalocean` driver and pass your key to the `--digitalocean-access-token` flag, along with a name for the new cloud server.
|
||||||
|
|
||||||
For this example, we'll call our new Droplet "docker-sandbox".
|
For this example, we'll call our new Droplet "docker-sandbox".
|
||||||
|
|
||||||
$ docker-machine create --driver digitalocean --digitalocean-access-token xxxxx docker-sandbox
|
```
|
||||||
Running pre-create checks...
|
$ docker-machine create --driver digitalocean --digitalocean-access-token xxxxx docker-sandbox
|
||||||
Creating machine...
|
Running pre-create checks...
|
||||||
(docker-sandbox) OUT | Creating SSH key...
|
Creating machine...
|
||||||
(docker-sandbox) OUT | Creating Digital Ocean droplet...
|
(docker-sandbox) OUT | Creating SSH key...
|
||||||
(docker-sandbox) OUT | Waiting for IP address to be assigned to the Droplet...
|
(docker-sandbox) OUT | Creating Digital Ocean droplet...
|
||||||
Waiting for machine to be running, this may take a few minutes...
|
(docker-sandbox) OUT | Waiting for IP address to be assigned to the Droplet...
|
||||||
Machine is running, waiting for SSH to be available...
|
Waiting for machine to be running, this may take a few minutes...
|
||||||
Detecting operating system of created instance...
|
Machine is running, waiting for SSH to be available...
|
||||||
Detecting the provisioner...
|
Detecting operating system of created instance...
|
||||||
Provisioning created instance...
|
Detecting the provisioner...
|
||||||
Copying certs to the local machine directory...
|
Provisioning created instance...
|
||||||
Copying certs to the remote machine...
|
Copying certs to the local machine directory...
|
||||||
Setting Docker configuration on the remote daemon...
|
Copying certs to the remote machine...
|
||||||
To see how to connect Docker to this machine, run: docker-machine env docker-sandbox
|
Setting Docker configuration on the remote daemon...
|
||||||
|
To see how to connect Docker to this machine, run: docker-machine env docker-sandbox
|
||||||
|
```
|
||||||
|
|
||||||
When the Droplet is created, Docker generates a unique SSH key and stores it on your local system in `~/.docker/machines`. Initially, this is used to provision the host. Later, it's used under the hood to access the Droplet directly with the `docker-machine ssh` command. Docker Engine is installed on the cloud server and the daemon is configured to accept remote connections over TCP using TLS for authentication.
|
When the Droplet is created, Docker generates a unique SSH key and stores it on your local system in `~/.docker/machines`. Initially, this is used to provision the host. Later, it's used under the hood to access the Droplet directly with the `docker-machine ssh` command. Docker Engine is installed on the cloud server and the daemon is configured to accept remote connections over TCP using TLS for authentication.
|
||||||
|
|
||||||
2. Go to the Digital Ocean console to view the new Droplet.
|
2. Go to the Digital Ocean console to view the new Droplet.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
3. At the command terminal, run `docker-machine ls`.
|
3. At the command terminal, run `docker-machine ls`.
|
||||||
|
|
||||||
$ docker-machine ls
|
```
|
||||||
NAME ACTIVE DRIVER STATE URL SWARM
|
$ docker-machine ls
|
||||||
default * virtualbox Running tcp://192.168.99.100:2376
|
NAME ACTIVE DRIVER STATE URL SWARM
|
||||||
docker-sandbox - digitalocean Running tcp://45.55.139.48:2376
|
default * virtualbox Running tcp://192.168.99.100:2376
|
||||||
|
docker-sandbox - digitalocean Running tcp://45.55.139.48:2376
|
||||||
|
```
|
||||||
|
|
||||||
Notice that the new cloud server is running but is not the active host. Our command shell is still connected to the default machine, which is currently the active host as indicated by the asterisk (*).
|
Notice that the new cloud server is running but is not the active host. Our command shell is still connected to the default machine, which is currently the active host as indicated by the asterisk (*).
|
||||||
|
|
||||||
4. Run `docker-machine env docker-sandbox` to get the environment commands for the new remote host, then run `eval` as directed to re-configure the shell to connect to `docker-sandbox`.
|
4. Run `docker-machine env docker-sandbox` to get the environment commands for the new remote host, then run `eval` as directed to re-configure the shell to connect to `docker-sandbox`.
|
||||||
|
|
||||||
$ docker-machine env docker-sandbox
|
```
|
||||||
export DOCKER_TLS_VERIFY="1"
|
$ docker-machine env docker-sandbox
|
||||||
export DOCKER_HOST="tcp://45.55.222.72:2376"
|
export DOCKER_TLS_VERIFY="1"
|
||||||
export DOCKER_CERT_PATH="/Users/victoriabialas/.docker/machine/machines/docker-sandbox"
|
export DOCKER_HOST="tcp://45.55.222.72:2376"
|
||||||
export DOCKER_MACHINE_NAME="docker-sandbox"
|
export DOCKER_CERT_PATH="/Users/victoriabialas/.docker/machine/machines/docker-sandbox"
|
||||||
# Run this command to configure your shell:
|
export DOCKER_MACHINE_NAME="docker-sandbox"
|
||||||
# eval "$(docker-machine env docker-sandbox)"
|
# Run this command to configure your shell:
|
||||||
|
# eval "$(docker-machine env docker-sandbox)"
|
||||||
|
|
||||||
$ eval "$(docker-machine env docker-sandbox)"
|
$ eval "$(docker-machine env docker-sandbox)"
|
||||||
|
```
|
||||||
|
|
||||||
5. Re-run `docker-machine ls` to verify that our new server is the active machine, as indicated by the asterisk (*) in the ACTIVE column.
|
5. Re-run `docker-machine ls` to verify that our new server is the active machine, as indicated by the asterisk (*) in the ACTIVE column.
|
||||||
|
|
||||||
$ docker-machine ls
|
```
|
||||||
NAME ACTIVE DRIVER STATE URL SWARM
|
$ docker-machine ls
|
||||||
default - virtualbox Running tcp://192.168.99.100:2376
|
NAME ACTIVE DRIVER STATE URL SWARM
|
||||||
docker-sandbox * digitalocean Running tcp://45.55.222.72:2376
|
default - virtualbox Running tcp://192.168.99.100:2376
|
||||||
|
docker-sandbox * digitalocean Running tcp://45.55.222.72:2376
|
||||||
|
```
|
||||||
|
|
||||||
6. Run some `docker-machine` commands to inspect the remote host. For example, `docker-machine ip <machine>` gets the host IP address and `docker-machine inspect <machine>` lists all the details.
|
6. Run some `docker-machine` commands to inspect the remote host. For example, `docker-machine ip <machine>` gets the host IP address and `docker-machine inspect <machine>` lists all the details.
|
||||||
|
|
||||||
$ docker-machine ip docker-sandbox
|
```
|
||||||
104.131.43.236
|
$ docker-machine ip docker-sandbox
|
||||||
|
104.131.43.236
|
||||||
|
|
||||||
$ docker-machine inspect docker-sandbox
|
$ docker-machine inspect docker-sandbox
|
||||||
{
|
{
|
||||||
"ConfigVersion": 3,
|
"ConfigVersion": 3,
|
||||||
"Driver": {
|
"Driver": {
|
||||||
"IPAddress": "104.131.43.236",
|
"IPAddress": "104.131.43.236",
|
||||||
"MachineName": "docker-sandbox",
|
"MachineName": "docker-sandbox",
|
||||||
"SSHUser": "root",
|
"SSHUser": "root",
|
||||||
"SSHPort": 22,
|
"SSHPort": 22,
|
||||||
"SSHKeyPath": "/Users/samanthastevens/.docker/machine/machines/docker-sandbox/id_rsa",
|
"SSHKeyPath": "/Users/samanthastevens/.docker/machine/machines/docker-sandbox/id_rsa",
|
||||||
"StorePath": "/Users/samanthastevens/.docker/machine",
|
"StorePath": "/Users/samanthastevens/.docker/machine",
|
||||||
"SwarmMaster": false,
|
"SwarmMaster": false,
|
||||||
"SwarmHost": "tcp://0.0.0.0:3376",
|
"SwarmHost": "tcp://0.0.0.0:3376",
|
||||||
"SwarmDiscovery": "",
|
"SwarmDiscovery": "",
|
||||||
...
|
...
|
||||||
|
```
|
||||||
|
|
||||||
7. Verify Docker Engine is installed correctly by running `docker` commands.
|
7. Verify Docker Engine is installed correctly by running `docker` commands.
|
||||||
|
|
||||||
Start with something basic like `docker run hello-world`, or for a more interesting test, run a Dockerized webserver on your new remote machine.
|
Start with something basic like `docker run hello-world`, or for a more interesting test, run a Dockerized webserver on your new remote machine.
|
||||||
|
|
||||||
In this example, the `-p` option is used to expose port 80 from the `nginx` container and make it accessible on port `8000` of the `docker-sandbox` host.
|
In this example, the `-p` option is used to expose port 80 from the `nginx` container and make it accessible on port `8000` of the `docker-sandbox` host.
|
||||||
|
|
||||||
$ docker run -d -p 8000:80 --name webserver kitematic/hello-world-nginx
|
```
|
||||||
Unable to find image 'kitematic/hello-world-nginx:latest' locally
|
$ docker run -d -p 8000:80 --name webserver kitematic/hello-world-nginx
|
||||||
latest: Pulling from kitematic/hello-world-nginx
|
Unable to find image 'kitematic/hello-world-nginx:latest' locally
|
||||||
a285d7f063ea: Pull complete
|
latest: Pulling from kitematic/hello-world-nginx
|
||||||
2d7baf27389b: Pull complete
|
a285d7f063ea: Pull complete
|
||||||
...
|
2d7baf27389b: Pull complete
|
||||||
Digest: sha256:ec0ca6dcb034916784c988b4f2432716e2e92b995ac606e080c7a54b52b87066
|
...
|
||||||
Status: Downloaded newer image for kitematic/hello-world-nginx:latest
|
Digest: sha256:ec0ca6dcb034916784c988b4f2432716e2e92b995ac606e080c7a54b52b87066
|
||||||
942dfb4a0eaae75bf26c9785ade4ff47ceb2ec2a152be82b9d7960e8b5777e65
|
Status: Downloaded newer image for kitematic/hello-world-nginx:latest
|
||||||
|
942dfb4a0eaae75bf26c9785ade4ff47ceb2ec2a152be82b9d7960e8b5777e65
|
||||||
|
```
|
||||||
|
|
||||||
In a web browser, go to `http://<host_ip>:8000` to bring up the webserver home page. You got the `<host_ip>` from the output of the `docker-machine ip <machine>` command you ran in a previous step. Use the port you exposed in the `docker run` command.
|
In a web browser, go to `http://<host_ip>:8000` to bring up the webserver home page. You got the `<host_ip>` from the output of the `docker-machine ip <machine>` command you ran in a previous step. Use the port you exposed in the `docker run` command.
|
||||||
|
|
||||||
|
@ -197,6 +213,6 @@ If you create a host with Docker Machine, but remove it through the cloud provid
|
||||||
|
|
||||||
* [Use Docker Machine to provision hosts on cloud providers](https://docs.docker.com/machine/get-started-cloud/)
|
* [Use Docker Machine to provision hosts on cloud providers](https://docs.docker.com/machine/get-started-cloud/)
|
||||||
|
|
||||||
* [Install Docker Engine](../../installation/index.md)
|
* [Install Docker Engine](../../installation/index.md)
|
||||||
|
|
||||||
* [Docker User Guide](../../userguide/intro.md)
|
* [Docker User Guide](../../userguide/intro.md)
|
||||||
|
|
Loading…
Reference in New Issue