Infra/Docker
Docker 사용하기
yoongrammer
2021. 1. 3. 10:30
728x90
목차
Docker 사용하기
Docker 명령은 docker run, docker push와 같이 docker <명령>
형식이며, 항상 root 권한으로 실행해야 합니다.
docker 명령은 root 권한으로 실행해야 하기 때문에 일반 계정에서는 항상 sudo를 사용해하지만 번거롭다면 sudo를 입력하지 않는 방법이 두 가지가 있습니다.
1. 처음부터 root 계정으로 로그인하거나 sudo su 명령을 사용하여 root 계정으로 전환합니다.
$ sudo su
#
2. 현재 계정을 docker 그룹에 포함시킵니다.
$ sudo usermod -aG docker ${USER}
$ sudo service docker restart
현재 계정에서 로그아웃한 뒤 다시 로그인 한다.
만약 usermod group 'docker' dose not exist
메시지가 나온다면 아래 명령어를 통해 group을 만들고 다시 명령어를 실행하면 됩니다.
% sudo groupadd docker
docker search
Docker Hub에서 이미지를 검색하는 명령어입니다.
docker search [OPTIONS] TERM
예:
/* ubuntu 이름으로 이미지를 검색합니다. */
$ docker search ubuntu
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s... 11062 [OK]
docker.io docker.io/dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interfac... 441 [OK]
docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 245 [OK]
docker.io docker.io/consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC sessi... 220 [OK]
docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ... 110 [OK]
docker.io docker.io/ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 98 [OK]
docker.io docker.io/1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 50 [OK]
docker.io docker.io/ubuntu-debootstrap debootstrap --variant=minbase --components... 44 [OK]
docker.io docker.io/nuagebec/ubuntu Simple always updated Ubuntu docker images... 24 [OK]
docker.io docker.io/i386/ubuntu Ubuntu is a Debian-based Linux operating s... 21
docker pull
Docker Hub에서 이미지 또는 저장소를 가져오는 명령어입니다.
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
예:
태그가 제공되지 않으면 Docker Engine은 :latest
태그를 기본값으로 사용합니다.
/* latest를 설정하면 최신버전으로 받습니다. */
$ docker pull ubuntu:latest
Trying to pull repository docker.io/library/ubuntu ...
latest: Pulling from docker.io/library/ubuntu
a4a2a29f9ba4: Pull complete
127c9761dcba: Pull complete
d13bf203e905: Pull complete
4039240d2e0b: Pull complete
Digest: sha256:35c4a2c15539c6c1e4e5fa4e554dac323ad0107d8eb5c582d6ff386b383b7dce
Status: Downloaded newer image for docker.io/ubuntu:latest
docker images
받은 이미지 목록을 출력하는 명령어입니다.
docker images [OPTIONS] [REPOSITORY[:TAG]]
예:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu latest 74435f89ab78 2 weeks ago 73.9 MB
docker run
새로운 컨테이너를 실행하는 명령어입니다.
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
예:
/* ubuntu이미지를 hello이름의 컨테이너로 생성한 뒤 bash 쉘을 실행하는 예 */
$ docker run -it --name hello ubuntu /bin/bash
root@05df8b2dcbf8:/# cat /etc/issue
Ubuntu 20.04 LTS \n \l
docker ps
컨테이너 목록을 출력하는 명령어입니다.
docker ps [OPTIONS]
예:
/* -a 옵션을 사용하면 정지된 컨테이너까지 모두 출력함 */
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05df8b2dcbf8 ubuntu "/bin/bash" 2 minutes ago Exited (0) 3 seconds ago hello
docker start
정지한 컨테이너를 실행하는 명령어입니다.
docker start [OPTIONS] CONTAINER [CONTAINER...]
예:
/* 컨테이너 이름대신 컨테이너ID를 사용해도 됩니다. */
$ docker start hello
hello
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05df8b2dcbf8 ubuntu "/bin/bash" 8 minutes ago Up 15 seconds hello
docker restart
OS 재부팅처럼 컨테이너를 재시작하는 명령어입니다.
/* 컨테이너 이름대신 컨테이너ID를 사용해도 됩니다. */
$ docker restart hello
hello
728x90
docker attach
실행 중인 컨테이너에 접속하는 명령어입니다.
docker attach [OPTIONS] CONTAINER
예:
$ docker attach hello
root@05df8b2dcbf8:/#
docker exec
외부에서 실행 중인 컨테이너에 명령을 실행하는 명령어입니다.
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
예:
$ docker exec hello echo "Hello World"
Hello World
docker stop
실행중인 컨테이너를 정지시키는 명령어입니다.
docker stop [OPTIONS] CONTAINER [CONTAINER...]
예:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05df8b2dcbf8 ubuntu "/bin/bash" 51 minutes ago Up 35 minutes hello
$ docker stop hello
hello
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker rm
생성된 컨테이너를 삭제하는 명령어입니다.
docker rm [OPTIONS] CONTAINER [CONTAINER...]
예:
$ docker rm hello
hello
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker rmi
이미지를 삭제하는 명령어입니다.
docker rmi [OPTIONS] IMAGE [IMAGE...]
예:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu latest 74435f89ab78 2 weeks ago 73.9 MB
/* <이미지 이름>:<태그> 대신 이미지 ID를 사용해도 됨 */
$ docker rmi ubuntu:latest
Untagged: ubuntu:latest
Untagged: docker.io/ubuntu@sha256:35c4a2c15539c6c1e4e5fa4e554dac323ad0107d8eb5c582d6ff386b383b7dce
Deleted: sha256:74435f89ab7825e19cf8c92c7b5c5ebd73ae2d0a2be16f49b3fb81c9062ab303
Deleted: sha256:8a8d1f0b34041a66f09e49bdc03e75c2190f606b0db7e08b75eb6747f7b49e11
Deleted: sha256:f1b8f74eff975ae600be0345aaac8f0a3d16680c2531ffc72f77c5e17cbfeeee
Deleted: sha256:27d46ebb54384edbc8c807984f9eb065321912422b0e6c49d6a9cd8c8b7d8ffc
Deleted: sha256:e1c75a5e0bfa094c407e411eb6cc8a159ee8b060cbd0398f1693978b4af9af10
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
728x90