반응형
Docker?
- 2013년 3월 Docker, Inc에서 출시한 오픈소스 컨테이너 프로젝트
- 복잡한 리눅스 어플리케이션을 컨테이너로 묶어서 실행할 수 있음.
- 리눅스 커널에서 제공하는 컨테이너 기술을 이용.
- 컨테이너(이미지)를 전 세계 사람들과 공유
- Github와 비슷한 방식의 Docker Hub 제공.
- 이미지 생성과 배포에 특화.
- 이미지 버전관리 제공, 중앙저장소에서 이미지를 올리고 받을 수 있음. (push/pull)
컨테이너?
- 가상화보다 훨씬 가벼운 기술.
- 가상머신 : 컴퓨터 안에서 컴퓨터를 만들어내기 위한 시도(1960년 대에 가상화 개념이 처음 등장)
- 컴퓨터 통째로 만들어내다보니 각종 성능 손실이 발생. -> 리눅스 컨테이너 등장.
- 컨테이너 안에 가상공간을 만들지만 실행 파일을 호스트에서 직접 실행.(리눅스 커널의 groups, namespaces가 제공하는 기술)
도커는 리눅스 컨테이너를 사용!
- 초기에는 LXC(Linux Container)를 기반으로 구현.
- 버전 0.9 부터는 LXC를 대신하는 libcontainer를 개발하여 사용.
- 실행 옵션으로 선택 가능.
이미지와 컨테이너의 구분
- 이미지 : 서비스 운영에 필요한 서버 프로그램
- 소스코드, 컴파일된 실행 파일을 묶음 형태.
- 저장소에 올리고 받는것은 이미지!(push/pull)
- 이미지로 여러 개의 컨테이너를 만들수 있음.
- 컨테이너 : 이미지를 실행한 상태!
도커 사용
docker + <명령>
예) docker run, docker push
* 항상 root 권한으로 실행.
- docker hub에서 이미지 검색해보기
- docker search <image name>
- sudo docker search ubuntu
- docker hub에서 이미지를 받아보자.
- docker pull <image name>:<tag>
- sudo docker pull ubuntu:latest
- 모든 이미지를 출력해보기
- docker images
- sudo docker images
- 이미지를 컨테이너로 생성한 뒤 Bash shell 실행해보기.
- docker run <옵션> <이미지 이름> <실행할 파일>
- sudo docker run -i -t —name hello ubuntu /bin/bash
- -i : interactive / -t : passed-tty
- 실행된 Bash 쉘에 입력 및 출력 가능.
- —name : 컨테이너 이름을 지정. 미지정시 자동으로 이름을 생성하여 지정.
- 모든 컨테이너 목록 출력
- docker ps
- sudo docker ps -a
- 컨테이너 시작
- docker start(restart) <컨테이너 이름>
- sudo docker start hello
- 방금 시작한 컨테이너에 접속해보기
- docker attach <컨테이너 이름>
- sudo docker attach hello
- /bin/bash를 통하지 않고 외부에서 컨테이너 안의 명령 실행해보기
- docker exec <컨테이너이름> <명령> <매개변수>
- sudo docker exec hello echo “hello world”
- 컨테이너 중지
- docker stop <컨테이너 이름>
- sudo docker stop hello
- 컨테이너 삭제
- docker rm hello
- sudo docker rm hello
- 이미지 삭제
- docker rmi <이미지 이름>:<태그>
- sudo docker rmi ubuntu:latest
Child commands
command의 링크를 누르시면 더 자세한 내용을 알수 있습니다.
Command | Description |
docker attach | Attach local standard input, output, and error streams to a running container |
docker build | Build an image from a Dockerfile |
docker checkpoint | Manage checkpoints |
docker commit | Create a new image from a container’s changes |
docker config | Manage Docker configs |
docker container | Manage containers |
docker cp | Copy files/folders between a container and the local filesystem |
docker create | Create a new container |
docker deploy | Deploy a new stack or update an existing stack |
docker diff | Inspect changes to files or directories on a container’s filesystem |
docker events | Get real time events from the server |
docker exec | Run a command in a running container |
docker export | Export a container’s filesystem as a tar archive |
docker history | Show the history of an image |
docker image | Manage images |
docker images | List images |
docker import | Import the contents from a tarball to create a filesystem image |
docker info | Display system-wide information |
docker inspect | Return low-level information on Docker objects |
docker kill | Kill one or more running containers |
docker load | Load an image from a tar archive or STDIN |
docker login | Log in to a Docker registry |
docker logout | Log out from a Docker registry |
docker logs | Fetch the logs of a container |
docker manifest | Manage Docker image manifests and manifest lists |
docker network | Manage networks |
docker node | Manage Swarm nodes |
docker pause | Pause all processes within one or more containers |
docker plugin | Manage plugins |
docker port | List port mappings or a specific mapping for the container |
docker ps | List containers |
docker pull | Pull an image or a repository from a registry |
docker push | Push an image or a repository to a registry |
docker rename | Rename a container |
docker restart | Restart one or more containers |
docker rm | Remove one or more containers |
docker rmi | Remove one or more images |
docker run | Run a command in a new container |
docker save | Save one or more images to a tar archive (streamed to STDOUT by default) |
docker search | Search the Docker Hub for images |
docker secret | Manage Docker secrets |
docker service | Manage services |
docker stack | Manage Docker stacks |
docker start | Start one or more stopped containers |
docker stats | Display a live stream of container(s) resource usage statistics |
docker stop | Stop one or more running containers |
docker swarm | Manage Swarm |
docker system | Manage Docker |
docker tag | Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE |
docker top | Display the running processes of a container |
docker trust | Manage trust on Docker images |
docker unpause | Unpause all processes within one or more containers |
docker update | Update configuration of one or more containers |
docker version | Show the Docker version information |
docker volume | Manage volumes |
docker wait | Block until one or more containers stop, then print their exit codes |
참고 사이트 :
- https://www.slideshare.net/pyrasis/docker-fordummies-44424016
- https://docs.docker.com/engine/reference/commandline/cli/
- https://docs.docker.com/engine/reference/commandline/run/#options
반응형
'CM > docker' 카테고리의 다른 글
Dockerfile 명령어 정리 (0) | 2022.06.10 |
---|---|
docker 빌드로 이미지를 만들어보자!(작성 중) (0) | 2022.01.25 |
Docker 리서치 (0) | 2021.02.03 |
about docker (0) | 2017.04.27 |