yoongrammer

Docker 사용하기 본문

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

    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

     

    참고: https://docs.docker.com/engine/reference

    728x90

    'Infra > Docker' 카테고리의 다른 글

    Docker 설치하기  (0) 2020.12.21
    Docker 알아보기  (0) 2020.12.20
    Comments