Docker 002 | Docker basic
Docker image
컨테이너 실행에 필요한 파일과 설정 값 등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않는다. 같은 이미지에서 여러개의 컨테이너를 생성할 수 있고 docker hub에 등록하거나 docker registry를 만들어 관리할 수도 있다.
레이어 저장 방식
도커 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 용량이 크다. 이것은 처음 이미지를 다운받을때는 문제가 되지 않지만 도커 이미지에 파일 하나를 추가할 경우 다시 다운받을때 비효율적이다.
이런 문제를 해결하기 위해 도커에서는 레이어라는 개념을 사용하고 유니온 파일 시스템을 이용하여 여러개의 레이어를 하나의 파일 시스템으로 사용할 수 있게 해준다.
이미지는 여러개의 읽기 전용(read-only)레이어로 구성되고 파일이 추가되거나 수정되면 새로운 레이어가 생성된다.
이미지 경로
이미지는 url 방식으로 관리하며 태그를 붙일 수 있다
ubuntu 14.04
의 이미지의 경우 다음과 같이 사용할 수 있으며 docker.io/library
는 생략이 가능하다.
- docker.io/library/ubuntu:14.04
- docker.id/library/ubuntu:trustry
Docker container
도커 컨테이너는 격리된 공간에서 프로세스가 동작하는 기술로 이미지를 실행한 상태를 말한다. 추가되거나 변하는 값은 컨테이너에 저장되며 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있다.
컨테이너는 다음과 같이 구성되어 있다.
- a docker image (도커 이미지)
- an excution environment (실행 환경)
- a standard set of instructions (표준 지침)
컨테이너 실행하기
터미널을 열고 다음 명령어를 실행합니다.
docker run -d -p 80:80 docker/getting-started
#또는 단일 문자 플래그를 결합하여 명령 단축
docker run -dp 80:80 docker/getting-started
- -d : background에서 컨테이너 실행
- -p 80:80 : 80번 포트를 사용하여 컨테이너 실행
- docker/getting-started : 사용할 이미지
로컬에서 이미지를 찾을 수 없는경우 docker-hub에서 이미지를 pull한다.
성공적으로 컨테이너가 실행되었다면 다음의 명령어를 통해 확인할 수 있다.
docker ps
docker dashboard에서도 running 중인 컨테이너를 확인 가능하다.
Docker basic command
# 실행중인 컨테이너를 보여줌
docker ps
# 실행이 종료된 것을 포함해서 모든 컨테이너를 보는 커맨드 및 옵션
docker ps -a
# 생성된 혹은 다운로드된 이미지를 보여주는 커맨드
docker images
# 모든 이미지를 보여주는 커맨드 및 옵션
docker images -a
docker build -t '도커허브에 가입한 계정명'/'이미지명(프로젝트명 권장)':'버전' .
ex) docker build -t wecode/wecodeproject:0.1.0 .
docker run --name '컨테이너 명' -d'데몬으로 실행하기 위한 옵션' -p '호스트 포트':'컨테이너 포트' '이미지명'
ex) docker run --name wecode01 -d -p 8000:8000 wecode/wecodeproject:0.1.0
docker run -it wecode/wecodeproject:0.1.0 /bin/bash
#위의 명령어를 실행하면 이미지를 기반으로 바로 컨테이너를 실행하면서 접속한다.
#process 등 여러가지를 살펴보면서 현재 서버에 어떤 문제가 있는지 알 수 있다. 하지만 수정은 컨테이너에서 하는게 아닌 이미지를 다시 빌드 해야한다.
컨테이너 전부 삭제
docker rm $(docker ps -a -q)
#UBUNTU
sudo docker rm $(sudo docker ps -a -q)
이미지 전부 삭제
docker rmi $(docker images -q)
#ubuntu
sudo docker rmi $(sudo docker images -q)
Author And Source
이 문제에 관하여(Docker 002 | Docker basic), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@thisisemptyyy/Docker-002-Docker-basic
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# 실행중인 컨테이너를 보여줌
docker ps
# 실행이 종료된 것을 포함해서 모든 컨테이너를 보는 커맨드 및 옵션
docker ps -a
# 생성된 혹은 다운로드된 이미지를 보여주는 커맨드
docker images
# 모든 이미지를 보여주는 커맨드 및 옵션
docker images -a
docker build -t '도커허브에 가입한 계정명'/'이미지명(프로젝트명 권장)':'버전' .
ex) docker build -t wecode/wecodeproject:0.1.0 .
docker run --name '컨테이너 명' -d'데몬으로 실행하기 위한 옵션' -p '호스트 포트':'컨테이너 포트' '이미지명'
ex) docker run --name wecode01 -d -p 8000:8000 wecode/wecodeproject:0.1.0
docker run -it wecode/wecodeproject:0.1.0 /bin/bash
#위의 명령어를 실행하면 이미지를 기반으로 바로 컨테이너를 실행하면서 접속한다.
#process 등 여러가지를 살펴보면서 현재 서버에 어떤 문제가 있는지 알 수 있다. 하지만 수정은 컨테이너에서 하는게 아닌 이미지를 다시 빌드 해야한다.
컨테이너 전부 삭제
docker rm $(docker ps -a -q)
#UBUNTU
sudo docker rm $(sudo docker ps -a -q)
이미지 전부 삭제
docker rmi $(docker images -q)
#ubuntu
sudo docker rmi $(sudo docker images -q)
Author And Source
이 문제에 관하여(Docker 002 | Docker basic), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@thisisemptyyy/Docker-002-Docker-basic저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)