Docker CLI 명령어에 대한 설명이다.

 

Child commands

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 builder Manage builds
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 context Manage contexts
docker cp Copy files/folders between a container and the local filesystem
docker create Create a new container
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

 

 

docker login

Docker registry(dockerhub)에 login하는 명령어로 docker registry에 등록된 이미지를 pull하거나 push를 위해 login한다. docker login은 패스워드를 직접 입력하는 방식과 STDIN 을 사용해서 로그인하는 방식이 있는데 보안을 위해 STDIN 방식으로 로긴하는 것을 권장한다.

 

1) STDIN을 사용하면 shll history나 로그파일에 남는 것을 방지

아래 예제는 pass.txt 파일에서 패스워드를 읽어서 login하는 방식이다.

$ cat pass.txt | docker login -u <username> --password-stdin

 

2) 패스워드 직업 입력 login

$ docker login -u <username> -p <password>

 

docker serarch

Docker registry(dockerhub)에 등록된 이미지를 검색하는 명령어이다.

아래는 oracle19 라는 이름이 포함된 이미지를 검색하는 명령어이다.

$ docker search oracle19

 

docker pull

docker pull 명령어로 oracle datbase 19c 이미지를 다운로드한다.

 

$ docker pull banglamon/oracle193db:19.3.0-ee

 

docker images

다운로드한 이미지 목록을 조회한다.

docker run

다운로드한 도커 이미지파일을 이용해서 컨테이너를 실행한다.

$ docker run -d --name oracle19db \
-p 1521:1521 \
-e ORACLE_SID=MONGO \
-e ORACLE_PDB=MONGOPDB \
-e ORACLE_PWD=Oracle123 \
-v /u01/app/oracle/oradata:/opt/oracle/oradata \
banglamon/oracle193db:19.3.0-ee

-d : deatach mode를 나타내며, -d=true 는 detached mode(background mode), -d=false는 foreground mode 로 수행

       -d 옵션만 쓸 경우는 -d=true와 동일

--name : 컨테이너 이름을 지정

-p, --publish : host port를 컨테이너 port로 게시, 앞쪽 port가 host port이고 뒤쪽 port가 컨테이너 port이다.

     ( 예, -p 1621:1521 로 설정하면 호스트에 1621 TCP port로 유입되는 모든 traffic은 컨테이너의 1521 port로 전달)

-e :  컨테이너의 환경변수를 설정. -e 옵션을 사용하면 Dockerfile의 ENV 설정도 덮어쓰게 된다.

    (예, -e ORACLE_SID=MONGO 는 오라클 컨테이너 환경변수 ORACLE_SID를 MONGO로 설정)

-v : 호스트와 컨테이너 간의 볼륨(volumn) 설정을 위해서 사용.

      호스트(host) 컴퓨터의 파일 시스템의 특정 경로를 컨테이너의 파일 시스템의 특정 경로로 마운트(mount)를 해준다.

      (Window : -v d:\temp )

      (Linux : )

 

위 예제는 oracle193db 이미지로 detached mode로 컨테이너를 실행하고

host에 1521 port로 유입되는 traffic을 컨테이너의 1521 port로 전달한다는 명령어이다. (1521은 오라클 리스너 port ) 

docker run 명령어 실행

컨테이너 조회 - docker ps 

docker ps는 현재 실행중인 도커 컨테이너를 조회한다.

docker ps -a는 실행중인 컨테이너와 중지된 컨테이너 모두를 조회한다. 컨테이너가 생성된 것을 확인 할 수 있다.

컨테이너 로그 조회 - docker logs 

컨테이너 실행 명령어 수행 후 바로 컨테이너를 사용할 수 있는 것은 아니다. 컨테이너에 따라 컨테이너를 생성하는데 필요한 설정을 하고 컨테이너를 생성하는데 시간이 소요된다. 오라클 데이터베이스는 오라클 인스턴스와 데이터베이스에 필요한 파일들을 생성하는데 일정 시간이 소요된다. 컨테이너 생성 과정을 모니터링 하기 위해 

docker logs <container name or cotainer id> 명령어를 수행한다. 아래 화면은 DB 설치가 진행 중인 것을 보여주고 있다.

log의 마지막 줄에 "XDB initialized" 가 보이면 정상 설치된 것이다.

컨테이너 접속 - docker exec 

컨테이너 생성이 "XDB initialized" 메시지와 함께 정상적으로 완료되면,

docker exec -i -t <ontainer name or cotainer id> /bin/bash 명령어로 컨테이너에 접속할 수 있다.

$ docker exec -it oracle19db bash
  • -i, --interactive=false : 표준 입력(stdin)을 활성화하며 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지한다.
  • -t, --tty=false : TTY 모드(pseudo-TTY)를 사용한다. Bash를 사용하려면 이 옵션을 설정해야 한다. 이 옵션을 설정하지 않으면 명령을 입력할 수는 있지만 셸이 표시되지 않는다.
  • ontainer name 을 oracle19db 로 입력한다.
  • bash : 컨테이너 안의 /bin/bash를 실행하여 Bash 셸에 연결한다

 

컨테이너 중지 - docker stop

실행 중인 Docker 컨테이너를 중지하려면 

docker stop <container name or cotainer id> 명령어를 사용한다. 중지하고 싶은 컨테이너 ID나 NAME을 입력한다.

 

컨테이너 시작 - docker start

중지된 Docker 컨테이너를 시작하려면 

docker start <container name or cotainer id> 명령어를 사용한다. 시작하고 싶은 컨테이너 ID나 NAME을 입력한다.

 

컨테이너 재시작 - docker restart

실행 중인 Docker 컨테이너를 재시작하려면 

docker restart <container name or cotainer id> 명령어를 사용한다. 재시작하고 싶은 컨테이너 ID나 NAME을 입력한다.애

 

컨테이너 접속 - docker attach

실행 중인 Docker 컨테이너에 접속하려면 

docker attach <container name or cotainer id> 명령어를 사용한다.  접속하고 싶은 컨테이너 ID나 NAME을 입력한다.

 

컨테이너 삭제 - docker rm

중지된 Docker 컨테이너를 삭제하려면 

docker rm <container name or cotainer id> 명령어를 사용한다. 삭제하고자 하는 컨테이너 ID나 NAME을 입력한다.

실행 중인 Docker 컨테이너를 삭제하려면 

docker rm -f <container name or cotainer id> 명령어를 사용한다. 삭제하고자 하는 컨테이너 ID나 NAME을 입력한다.

 

이미지 삭제 - docker rmi

Docker 이미지를 삭제하려면 

docker rmi <image name or image id> 명령어를 사용한다. 삭제하고자 하는 이미지 ID나 NAME을 입력한다. 

단, Docker 이미지 삭제 시 이미지를 사용하는 컨테이너가 없어야 한다. 이미지를 사용하는 컨테이너가 먼저 모두 삭제되어야 한다.

컨테이너가 존재하는 상태에서 컨테이너와 이미지를 삭제하려먼

docker rmi -f <image name or image id> 명령어를 사용한다. 삭제하고자 하는 이미지 ID나 NAME을 입력한다.

'Docker' 카테고리의 다른 글

헷갈리는 Docker - 수정  (0) 2021.12.26
Docker Commands for Managing Container Lifecycle  (0) 2021.12.25
Docker run, start, create 차이  (0) 2021.12.25
window10에 도커 설치하기  (1) 2021.12.25
도커란  (0) 2021.12.25

+ Recent posts