반응형
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 |