딸: "헤이세이도 끝났어. 어디로 데려가!"아버지: "어디가...그렇구나. Docker로 가자!"
7987 단어 Docker
개시하다
이 기사는'도대체 Docker가 무엇인가?'이것은 어떤 등급의 사람을 겨냥한 문장이다
이미 능숙하게 사용하신 분들은 좀 더 자세한 이야기를 들어보세요.
도대체 Docker가 뭐예요?
먼저 Docker라는 존재가 어떤 사람인지부터 시작해야 한다.
Docker는 컨테이너형 가상 환경을 활용하는 소프트웨어입니다.
자주 사용하는 가상화와 무엇이 다릅니까?
일반적인 가상 환경으로는'VMWare'와'Hyper-V'등이 있다.
그 가상화와 다른 것은 용기형 가상화다.
간단하게 말하면 세 가지 가상화 기술이 있다
호스트 및 하이퍼서버 가상화
호스트 가상화 호스트인 OS에 가상 하드웨어를 구축하고 고객의 OS를 조작합니다.
한편, 초진동기형 가상화는 호스트형과 달리 하드웨어에 초진동기를 배치하고 그 위에 고객 OS를 가동한다.
컨테이너 가상화
용기형 가상화는 상술한 두 가상화의 기본적인 생각과 다르다
하드웨어 차원의 가상화가 아닌 상위 계층,
중간부품 이상의 층을 가상화하는 기술이라는 얘기다.
특히 Docker의 Linux 컨테이너 기반 기술
Linux의 작업만 고려합니다.
자세히 말하면
가상 시스템과 달리 하드웨어 부분은 아무런 관리가 없고 심지어 Linux 커널까지 호스트 OS와 공유한다.
Docker에서 CentOS와 Ubuntu의 이동은 사실 모두 Linux 기반입니다.
그렇다면 Windows와 Mac은 어떻게 사용합니까?
Windows와 Mac은 각각 해당 Docker를 게시합니다.
Hyper-V에서 Windows Docker 버전
Mac 버전의 Docker는 HyperKit(Hypervisor Framework)에 각각 Linux의 가상 환경을 구축했다
그런 다음 Linux를 시작합니다.
안심하고 쓰시오
설치하다.
운영체제가 다르기 때문에 생략합니다.
'OS명'Docker 설치'로 투덜대면 많이 나오니까 참고하세요.
처음 Docker
$ docker run hello-world
이렇게 되면 아래 콘솔이 나올 거예요.Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:92695bc579f31df7a63da6922075d0666e565ceccad16b59c3374d2cf4e8e50e
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
기본 Docker 명령은 다음과 같습니다.$ docker run イメージ名
이번에 실행된 것은'hello-world'라는 인상명이다.
'인상'이 도대체 뭐예요?
기본적으로 AWS의 EC2 스냅샷
가상 환경의 디스크 이미지와 유사하다고 볼 수 있습니다.
일반적인 스냅숏과 다른 것은
"기본 이미지와 이들 사이의 차이는 층으로 나뉜다."
용량을 줄이기 위해서다.
하지만 이제 너무 신경 쓰지 마세요.'그렇다'고 생각하세요.
Docker Hub
인상적인 이유보다는 Docker Hub의 존재를 먼저 기억해야 한다.
Docker Hub은 Docker 이미지가 많은 곳입니다.
여기 공개된 Docker 이미지는 기본적으로 자유롭게 사용할 수 있어요.
자신의 Docker 이미지를 만들어 공개할 수도 있습니다.
예를 들어 웹 브라우저의 가상이라고 할 수 있는nginx를 살펴보자.
"nginx"에서 찾으면 다음과 같은 내용을 검색할 수 있습니다.
검색 결과에서 맨 위를 선택하면 다음 화면이 됩니다. 오른쪽에 있는 명령을 확인하십시오.
이렇게 되면 오른쪽에 명령이 쓰여 있으니 쳐들어가 보세요.
$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
27833a3ba0a5: Pull complete
ea005e36e544: Pull complete
d172c7f0578d: Pull complete
Digest: sha256:e71b1bf4281f25533cf15e6e5f9be4dac74d2328152edf7ecde23abc54e16c1c
Status: Downloaded newer image for nginx:latest
그럼 docker 이미지를 다운로드할 수 있습니다.
(방금 조금 나왔어요. 이 세 줄의 Pull complete는 Docker 이미지의 층을 나타냅니다.)
다운로드가 잘 되었는지 확인하세요.$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 27a188018e18 12 days ago 109MB
hello-world latest fce289e99eb9 3 months ago 1.84kB
nginx와 방금 실행한 Hello-world가 있음을 확인할 수 있습니다.
그럼,nginx를 시작합니다.$ docker run -d --name nginx -p 80:80 nginx
아까와 달리 매개 변수를 추가했습니다.
각 매개변수에 대한 설명은 다음과 같습니다.
매개 변수
설명
-d
백그라운드 시작
-p
외부 액세스를 위한 포트 전달 설정
--name
컨테이너 이름을 지정합니다.지정하지 않으면 무작위 항목을 지정합니다.
시동이 걸렸는지 확인해 봐.$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4408569f2a06 nginx "nginx -g 'daemon of…" 36 seconds ago Up 34 seconds 0.0.0.0:80->80/tcp nginx
그럼 이제 브라우저를 열고 다음 사이트를 방문하세요.
http://localhost/
아래와 같이,nginx의 컨테이너는 정상적으로 작동한다.
마지막으로nginx를 없애주세요.$ docker stop nginx
다시 한 번, dockerps를 실행하면 아무것도 실행되지 않았다는 것을 알 수 있습니다.$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
그나저나 떨어진 컨테이너는 아직 안에 남아 있다.남은 용기를 보려면 -a를 선택하세요.$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4408569f2a06 nginx "nginx -g 'daemon of…" 23 minutes ago Exited (0) About a minute ago nginx
35b7780b3329 hello-world "/hello" About an hour ago Exited (0) About an hour ago sad_curie
바닥에 떨어진 용기를 다시 운행하다
다시 실행하려면 다음 명령을 입력하십시오.$ docker start nginx
삭제된 컨테이너
이미 필요 없는 용기는 용량을 압박할 수 있으니 필요하지 않으면 아래의 명령으로 지겹지 않게 삭제하세요$ docker rm nginx
뜻을 깨닫다.그렇다면 왜 Docker를 사용합니까?
Docker를 사용하는 가장 큰 목적은 다음과 같습니다.
환경 구축의 용이성과 환경의 통일화.
DevOps와의 친화성
예를 들어, Java의 웹 응용 프로그램을 개발했다고 가정합니다.
로컬 개발 환경은 Windows이고 개발 서버와 정식 서버가 Linux인 경우
환경 종속 오류, 하드웨어로 인한 오류 발생
설치 프로그램의 누설로 인해 발표에 실패할 수 있습니다.
그러나 Docker는 컨테이너에 DB 환경을 포함하여
서버는 Docker만 설치하면 됩니다.
작성한 Docker 이미지를 시작하기만 하면 동일한 환경을 만들 수 있습니다.
개발직의 본격적인 운용이 원활하게 이뤄질 수 있다는 것이다.
이 점도 DepOps의 방식에 부합되고 Docker의 채용도 끊임없이 추진되고 있다.
환경 구축의 용이성
간단하게 환경을 만들면 규모도 쉬워진다.
특히 Docker는 시작/종료가 빠른 가장 큰 장점이 있습니다.
나는 신속하게 확대할 수 있기를 바란다.
총결산
Docker만 기억하면 될 것 같지 않아요?
아직 많이 남았어요!
먼저 Docker라는 존재가 어떤 사람인지부터 시작해야 한다.
Docker는 컨테이너형 가상 환경을 활용하는 소프트웨어입니다.
자주 사용하는 가상화와 무엇이 다릅니까?
일반적인 가상 환경으로는'VMWare'와'Hyper-V'등이 있다.
그 가상화와 다른 것은 용기형 가상화다.
간단하게 말하면 세 가지 가상화 기술이 있다
호스트 및 하이퍼서버 가상화
호스트 가상화 호스트인 OS에 가상 하드웨어를 구축하고 고객의 OS를 조작합니다.
한편, 초진동기형 가상화는 호스트형과 달리 하드웨어에 초진동기를 배치하고 그 위에 고객 OS를 가동한다.
컨테이너 가상화
용기형 가상화는 상술한 두 가상화의 기본적인 생각과 다르다
하드웨어 차원의 가상화가 아닌 상위 계층,
중간부품 이상의 층을 가상화하는 기술이라는 얘기다.
특히 Docker의 Linux 컨테이너 기반 기술
Linux의 작업만 고려합니다.
자세히 말하면
가상 시스템과 달리 하드웨어 부분은 아무런 관리가 없고 심지어 Linux 커널까지 호스트 OS와 공유한다.
Docker에서 CentOS와 Ubuntu의 이동은 사실 모두 Linux 기반입니다.
그렇다면 Windows와 Mac은 어떻게 사용합니까?
Windows와 Mac은 각각 해당 Docker를 게시합니다.
Hyper-V에서 Windows Docker 버전
Mac 버전의 Docker는 HyperKit(Hypervisor Framework)에 각각 Linux의 가상 환경을 구축했다
그런 다음 Linux를 시작합니다.
안심하고 쓰시오
설치하다.
운영체제가 다르기 때문에 생략합니다.
'OS명'Docker 설치'로 투덜대면 많이 나오니까 참고하세요.
처음 Docker
$ docker run hello-world
이렇게 되면 아래 콘솔이 나올 거예요.Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:92695bc579f31df7a63da6922075d0666e565ceccad16b59c3374d2cf4e8e50e
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
기본 Docker 명령은 다음과 같습니다.$ docker run イメージ名
이번에 실행된 것은'hello-world'라는 인상명이다.'인상'이 도대체 뭐예요?
기본적으로 AWS의 EC2 스냅샷
가상 환경의 디스크 이미지와 유사하다고 볼 수 있습니다.
일반적인 스냅숏과 다른 것은
"기본 이미지와 이들 사이의 차이는 층으로 나뉜다."
용량을 줄이기 위해서다.
하지만 이제 너무 신경 쓰지 마세요.'그렇다'고 생각하세요.
Docker Hub
인상적인 이유보다는 Docker Hub의 존재를 먼저 기억해야 한다.
Docker Hub은 Docker 이미지가 많은 곳입니다.
여기 공개된 Docker 이미지는 기본적으로 자유롭게 사용할 수 있어요.
자신의 Docker 이미지를 만들어 공개할 수도 있습니다.
예를 들어 웹 브라우저의 가상이라고 할 수 있는nginx를 살펴보자.
"nginx"에서 찾으면 다음과 같은 내용을 검색할 수 있습니다.
검색 결과에서 맨 위를 선택하면 다음 화면이 됩니다. 오른쪽에 있는 명령을 확인하십시오.
이렇게 되면 오른쪽에 명령이 쓰여 있으니 쳐들어가 보세요.
$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
27833a3ba0a5: Pull complete
ea005e36e544: Pull complete
d172c7f0578d: Pull complete
Digest: sha256:e71b1bf4281f25533cf15e6e5f9be4dac74d2328152edf7ecde23abc54e16c1c
Status: Downloaded newer image for nginx:latest
그럼 docker 이미지를 다운로드할 수 있습니다.(방금 조금 나왔어요. 이 세 줄의 Pull complete는 Docker 이미지의 층을 나타냅니다.)
다운로드가 잘 되었는지 확인하세요.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 27a188018e18 12 days ago 109MB
hello-world latest fce289e99eb9 3 months ago 1.84kB
nginx와 방금 실행한 Hello-world가 있음을 확인할 수 있습니다.그럼,nginx를 시작합니다.
$ docker run -d --name nginx -p 80:80 nginx
아까와 달리 매개 변수를 추가했습니다.각 매개변수에 대한 설명은 다음과 같습니다.
매개 변수
설명
-d
백그라운드 시작
-p
외부 액세스를 위한 포트 전달 설정
--name
컨테이너 이름을 지정합니다.지정하지 않으면 무작위 항목을 지정합니다.
시동이 걸렸는지 확인해 봐.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4408569f2a06 nginx "nginx -g 'daemon of…" 36 seconds ago Up 34 seconds 0.0.0.0:80->80/tcp nginx
그럼 이제 브라우저를 열고 다음 사이트를 방문하세요.http://localhost/
아래와 같이,nginx의 컨테이너는 정상적으로 작동한다.
마지막으로nginx를 없애주세요.
$ docker stop nginx
다시 한 번, dockerps를 실행하면 아무것도 실행되지 않았다는 것을 알 수 있습니다.$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
그나저나 떨어진 컨테이너는 아직 안에 남아 있다.남은 용기를 보려면 -a를 선택하세요.$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4408569f2a06 nginx "nginx -g 'daemon of…" 23 minutes ago Exited (0) About a minute ago nginx
35b7780b3329 hello-world "/hello" About an hour ago Exited (0) About an hour ago sad_curie
바닥에 떨어진 용기를 다시 운행하다
다시 실행하려면 다음 명령을 입력하십시오.
$ docker start nginx
삭제된 컨테이너
이미 필요 없는 용기는 용량을 압박할 수 있으니 필요하지 않으면 아래의 명령으로 지겹지 않게 삭제하세요
$ docker rm nginx
뜻을 깨닫다.그렇다면 왜 Docker를 사용합니까?
Docker를 사용하는 가장 큰 목적은 다음과 같습니다.
환경 구축의 용이성과 환경의 통일화.
DevOps와의 친화성
예를 들어, Java의 웹 응용 프로그램을 개발했다고 가정합니다.
로컬 개발 환경은 Windows이고 개발 서버와 정식 서버가 Linux인 경우
환경 종속 오류, 하드웨어로 인한 오류 발생
설치 프로그램의 누설로 인해 발표에 실패할 수 있습니다.
그러나 Docker는 컨테이너에 DB 환경을 포함하여
서버는 Docker만 설치하면 됩니다.
작성한 Docker 이미지를 시작하기만 하면 동일한 환경을 만들 수 있습니다.
개발직의 본격적인 운용이 원활하게 이뤄질 수 있다는 것이다.
이 점도 DepOps의 방식에 부합되고 Docker의 채용도 끊임없이 추진되고 있다.
환경 구축의 용이성
간단하게 환경을 만들면 규모도 쉬워진다.
특히 Docker는 시작/종료가 빠른 가장 큰 장점이 있습니다.
나는 신속하게 확대할 수 있기를 바란다.
총결산
Docker만 기억하면 될 것 같지 않아요?
아직 많이 남았어요!
최후
딸: "그럼 어떻게든 돼. 나랑 놀자."
Reference
이 문제에 관하여(딸: "헤이세이도 끝났어. 어디로 데려가!"아버지: "어디가...그렇구나. Docker로 가자!"), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hikaruright/items/0908df7d1101498e4a58텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)