GCP(Google Compute Engine)에 Docker Machine 넣기
이쪽을 참고로 하면서.
사전 준비
gcloud의 최신 버전 설치
pip install gcloud
gcloud에 로그인
gcloud auth login
디폴트라면 브라우저가 일어나서 로그인하게 된다.
Google Compute Engine에서 Nginx 컨테이너 이동
docker-machine 만들기
작업용이라면 선점형 인스턴스 사용 일로 상당히 싸게 되는 것과, 잘못 방치해도 24시간에 사라져 주기 때문에 --google-preemptible
는 지정해야 한다. 그리고 태그로서 http-server
와 https-server
를 지정해 두면, 80 과 443 이 비어 있으므로 편리합니다. (보안에주의하십시오)
$ docker-machine create -d google \
--google-project <PROJECT_NAME> \
--google-preemptible \
--google-tags 'http-server,https-server' \
--google-zone asia-east1-a \
--google-machine-type "g1-small" \
newton
나왔다.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
default - virtualbox Running tcp://192.168.99.100:2376
newton - google Running tcp://XXX.XXX.XXX.XXX:2376
docker-machine을 전환합니다.
$ eval $(docker-machine env newton)
$ docker info
Containers: 1
Images: 12
Server Version: 1.9.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 14
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.19.0-28-generic
Operating System: Ubuntu 14.04.3 LTS
CPUs: 1
Total Memory: 3.614 GiB
Name: newton
ID: GSHG:YOET:XXXX:EZ7T:CWX4:S4CC:6HZX:XXXX:OAPR:STQE:WKTH:LCBR
WARNING: No swap limit support
Labels:
provider=google
nginx를 시작해보기
$ docker pull nginx
$ docker run -d -p 80:80 --name nginx nginx
c9ff75a9d98b9f0171e6bbcf7b475c45c8ecff980ca0e67264dc6bd895f85c65
본래 그대로 만든다.
동작 확인
http 트래픽을 허가해 주면 액세스할 수 있게 된다.
$ curl http://$(docker-machine ip newton)
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page,
....
좋아요.
http 포트에 액세스할 수 없는 경우
$ curl http://$(docker-machine ip newton)
curl: (7) Failed to connect to XXX.XXX.XXX.XXX port 80: Operation timed out
어...?
라고 생각했지만 GCE의 인스턴스는 디폴트에서는 외부로부터의 http 리퀘스트를 받아들이지 않는다. 위의 순서로 --google-tag "http-server"
하고 있으면 연결된다고 생각합니다만, 가끔 틀리거나 하기 때문에 콘솔에서 재검토하자.
Docker Machine에서 GCE 인스턴스를 만들 때 등록되는 공개 키의 형식이 변경됩니다.
DockerMachine씨가 자동 생성한 인증 정보를 인스턴스에 자동 등록해 주고 있지만, 공개키에 유저명이 쓰여 있지 않기 때문에, 그대로 편집하려고 하면 저장할 수 없다. "잘못된 열쇠입니다"라고 화난다.
당황하지 말고, 끝에 왠지 적당한 username 를 추가해 주자. 우세 r なめ@えぁ mpぇ. 이 m 와 메일 주소 형식으로 쓰여져 있지만, 적당한 이름으로 좋다.
사용이 끝나면
docker-machine 명령으로 떨어뜨리면 GCE 측에서 인스턴스가 제대로 사라집니다.
$ docker-machine rm newton
Reference
이 문제에 관하여(GCP(Google Compute Engine)에 Docker Machine 넣기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ma2saka/items/74db9393072ff9e779c7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pip install gcloud
gcloud auth login
docker-machine 만들기
작업용이라면 선점형 인스턴스 사용 일로 상당히 싸게 되는 것과, 잘못 방치해도 24시간에 사라져 주기 때문에
--google-preemptible
는 지정해야 한다. 그리고 태그로서 http-server
와 https-server
를 지정해 두면, 80 과 443 이 비어 있으므로 편리합니다. (보안에주의하십시오)$ docker-machine create -d google \
--google-project <PROJECT_NAME> \
--google-preemptible \
--google-tags 'http-server,https-server' \
--google-zone asia-east1-a \
--google-machine-type "g1-small" \
newton
나왔다.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
default - virtualbox Running tcp://192.168.99.100:2376
newton - google Running tcp://XXX.XXX.XXX.XXX:2376
docker-machine을 전환합니다.
$ eval $(docker-machine env newton)
$ docker info
Containers: 1
Images: 12
Server Version: 1.9.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 14
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.19.0-28-generic
Operating System: Ubuntu 14.04.3 LTS
CPUs: 1
Total Memory: 3.614 GiB
Name: newton
ID: GSHG:YOET:XXXX:EZ7T:CWX4:S4CC:6HZX:XXXX:OAPR:STQE:WKTH:LCBR
WARNING: No swap limit support
Labels:
provider=google
nginx를 시작해보기
$ docker pull nginx
$ docker run -d -p 80:80 --name nginx nginx
c9ff75a9d98b9f0171e6bbcf7b475c45c8ecff980ca0e67264dc6bd895f85c65
본래 그대로 만든다.
동작 확인
http 트래픽을 허가해 주면 액세스할 수 있게 된다.
$ curl http://$(docker-machine ip newton)
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page,
....
좋아요.
http 포트에 액세스할 수 없는 경우
$ curl http://$(docker-machine ip newton)
curl: (7) Failed to connect to XXX.XXX.XXX.XXX port 80: Operation timed out
어...?
라고 생각했지만 GCE의 인스턴스는 디폴트에서는 외부로부터의 http 리퀘스트를 받아들이지 않는다. 위의 순서로
--google-tag "http-server"
하고 있으면 연결된다고 생각합니다만, 가끔 틀리거나 하기 때문에 콘솔에서 재검토하자.Docker Machine에서 GCE 인스턴스를 만들 때 등록되는 공개 키의 형식이 변경됩니다.
DockerMachine씨가 자동 생성한 인증 정보를 인스턴스에 자동 등록해 주고 있지만, 공개키에 유저명이 쓰여 있지 않기 때문에, 그대로 편집하려고 하면 저장할 수 없다. "잘못된 열쇠입니다"라고 화난다.
당황하지 말고, 끝에 왠지 적당한 username 를 추가해 주자. 우세 r なめ@えぁ mpぇ. 이 m 와 메일 주소 형식으로 쓰여져 있지만, 적당한 이름으로 좋다.
사용이 끝나면
docker-machine 명령으로 떨어뜨리면 GCE 측에서 인스턴스가 제대로 사라집니다.
$ docker-machine rm newton
Reference
이 문제에 관하여(GCP(Google Compute Engine)에 Docker Machine 넣기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ma2saka/items/74db9393072ff9e779c7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)