Docker
Docker 이미지, 컨테이너 명령어 모음
구티맨
2021. 4. 6. 08:10
이미지
이미지 빌드
$ docker build -t <user name>/app-name .
Usage: docker build [OPTIONS] PATH | URL | -
Options:
-t Name and optionally a tag in the 'name:tag' format
PATH : dockerfile이 위치한 디렉토리
이미지 목록 보기
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
node 14.16.0 abea835c0b3b 11 days ago 943MB
java latest d23bdf5b1b1b 4 years ago 643MB
이미지 이름 변경
USAGE : docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
$ docker tag java java2
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
java2 latest d23bdf5b1b1b 4 years ago 643MB
java latest d23bdf5b1b1b 4 years ago 643MB
이미지 삭제
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
Options:
-f, --force Force removal of the image
--no-prune Do not delete untagged parents
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
node 14.16.0 abea835c0b3b 11 days ago 943MB
java2 latest d23bdf5b1b1b 4 years ago 643MB
java latest d23bdf5b1b1b 4 years ago 643MB
$ docker rmi java2
Untagged: java2:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
node 14.16.0 abea835c0b3b 11 days ago 943MB
java latest d23bdf5b1b1b 4 years ago 643MB
모든 이미지 삭제
docker rmi $(docker images -q)
이미지 업로드 및 다운로드
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: account
Password:
WARNING! Your password will be stored unencrypted in /home/geoapp/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
$docker push NAME[:TAG]
$docker pull NAME[:TAG]
컨테이너
컨테이너 목록 보기
Usage: docker ps [OPTIONS]
List containers
Options:
-a, --all Show all containers (default shows just running)
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print containers using a Go template
-n, --last int Show n last created containers (includes all states) (default -1)
-l, --latest Show the latest created container (includes all states)
--no-trunc Don't truncate output
-q, --quiet Only display numeric IDs
-s, --size Display total file sizes
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
31e5d36091ff java "java -XshowSettings…" 3 days ago Exited (0) 3 days ago kind_buck
(새로운) 컨테이너 생성/시작
: 새로운 컨테이너 생성하여 실행해주는 명령어 입니다.( docker create + start )
: 컨테이너 생성만 하기 위해서는 docker create 명령어를 사용해야 합니다.
: -p 옵션은 컨테이너의 외부와 내부의 port를 매핑해주는 옵션입니다.
로컬에서 도커 및 컨테이너를 수행 중인 경우, 로컬의 80번 포트로 통신이 발생하면 해당 트래픽을 컨테이너의 8010 포트로 전달해줍니다.( 8010은 반드시 EXPOSE가 되어 있어야 합니다. )
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new container
Options:
-p publish port/internal port
-d Run container in background and print container ID
$ docker run -d -p 80:8010 image
컨테이너 시작
: run 으로 생성된 컨테이너를 시작할 때 사용하는 명령어 입니다.
Usage: docker start [OPTIONS] CONTAINER [CONTAINER...]
Start one or more stopped containers
컨테이너 중지
docker stop CONTAINER
모든 컨테어너 삭제
: 모든 컨테이너를 중지하고, 삭제 합니다.
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
컨테이너 이름 변경
docker rename CONTAINER NEW_NAME
컨테이너에 명령어 수행
bash 수행
: exec 명령어로 새로운 프로세스를 수행하여, 실행중인 컨테이너에 /bin/bash를 수행하여 컨테이너 상태를 조회 가능
$ docker exec -it c041fcdc /bin/bash
root@c041fcdc2844:/usr/src/app# ls
Dockerfile node_modules package.json server.js webpack.config.js webpack.new.config.js
build.gradle package-lock.json public src webpack.dev.config.js yarn.lock
Usage : docker exec [OPTIONS] CONTAINER COMMAND [ARG...]