Docker) 설치 및 간단사용법

Docker

cpu의 가상화 기술 이용방식


저장방식

유니온 파일 시스템을 이용 > 여러 개의 Layer를 하나의 파일시스템으로 사용 가능하다.

(layer낭비를 막을 수 있다. -> 메모리가 절약된다.)


docker image

컨테이너 실행에 필요한 파일과 설정 값 등을 포함 -> 상태값 x,immutable

대신 실체화 -> Container




설치

hub.docker.com에 가서 Docker Desktop for Windows 를 다운로드 받자

(윈도10이고 pro, enterprise ver,64bit만 가능하다)


docker디렉토리와 하위에 day01 디렉토리를 만들자

이제 vscode에서 dockerfile, helloworld(image)를 만들자

# helloworld에는 얘
#!bin/sh

echo "Hello, World!"
----------------------
# dockerfile에는 얘를 넣자
FROM ubuntu:16.04

COPY helloworld /usr/local/bin
RUN chmod +x /usr/local/bin/helloworld
CMD ["helloworld"]

vscode를 쓴다면,

image-20191230172359176

우측 하단을 LF로 바꿔주고 저장해야한다.

안 그러면 밑의 작업 도중에 다음과 같은 에러를 만날 수 있다.

standard_init_linux.go:211: exec user process caused "no such file or directory


이제 잘 작동하는지 확인해보자

$ docker image build -t helloworld:latest . # 내 이미지에 태그 달아줌
$ docker image ls # 이미지들 확인 가능
$ docker container run helloworld:latest # 내가 만든 helloworld 이미지 실행
$ docker run helloworld:latest # 이제 계속 실행 가능
$ docker container run hello-world # 새로 만들어줌
$ docker run hello-world # 실행, 

ubuntu image가 있다면,

$ docker run -it ubuntu:16.04 /bin/bash # ubuntu image가 있다면 실행함

image 20191230165711012

다음과 같이 실행할 수 있다. 현재 rinux ubuntu 실행중

image-20191230165840889

새 cmd창에서 ubuntu 2개가 실행중인 것을 확인할 수 있다. 매우 쉽게 확장 가능하다


docker file 삭제

만약 docker파일을 지우려면, 컨테이너 먼저 지워야하고 실행중인 것을 stop를 해야 한다.

$ docker ps -a # 파일들을 보고
$ docker stop [id]
$ docker rm [id] # 하면 지울 수 있다

이미지 내려받기

$ docker image pull gihyodocker/echo:latest
$ docker run -t -p 9000:8080 gihyodocker/echo:latest # 받은 이미지 실행

이제 웹에서 localhost:9000으로 접속하면 실행되는 화면을 볼 수 있다.

해당 이미지는 웹서버에 띄워주는 에코서버 이미지이다.


Written by@Jeonghoon Song
BFS보단 DFS를 하는 개발자가 되자

GitHub