웹관련프로그래밍(web programming)/Docker(도커)

[도커] 컨테이너 실행 및 종료, 백그라운드 동작 (start, run, Docker, Container, background)

끄적끄적아무거나 2024. 3. 25. 17:59
반응형

 

목차

     

     

     

     

     

    컨테이너 실행 Create

     

    1. ps -a 로 현재 실행 중이거나 실행 가능한 도커 이미지를 검색합니다.

    ubuntu@ip-172-31-4-29:~$ docker ps -a
    CONTAINER ID   IMAGE         COMMAND       CREATED         STATUS                  PORTS     NAMES
    3aa7ae8b50f9   ubuntu        "/bin/bash"   2 minutes ago   Created                           laughing_chebyshev
    7fc5d1fcff44   hello-world   "/hello"      8 days ago      Exited (0) 8 days ago             great_cerf

     

     

     

     

    2. 구분 되어지는 아이디 일부 값을 입력해서 start로 도커를 실행합니다. 결과로 입력에 사용한 ID가 return 출력 됩니다. start에 별도의 입력을 넣지 않아 /bin/bash 쉘 명령은 실행 후 종료 될 것입니다.

    ubuntu@ip-172-31-4-29:~$ docker start 3aa7ae
    3aa7ae

     

     

     

    3. Status 창을 통해 해당 도커가 실행 후 Exited 되었음을 알 수 있습니다. 

    ubuntu@ip-172-31-4-29:~$ docker ps -a
    CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS                          PORTS     NAMES
    3aa7ae8b50f9   ubuntu        "/bin/bash"   16 minutes ago   Exited (0) About a minute ago             laughing_chebyshev
    7fc5d1fcff44   hello-world   "/hello"      8 days ago       Exited (0) 8 days ago                     great_cerf

     

     

     

     

    컨테이너 실행 Run

     

    docker start 명령어를 사용할 때 표준 입력(STDIN)을 직접 넣는 기능은 직접적으로 지원되지 않습니다. docker start 명령어는 이미 생성된 컨테이너를 시작하는 용도로 사용되며, 주로 컨테이너의 실행 상태를 관리하는데 초점이 맞춰져 있습니다. 이 명령어는 기본적으로 표준 입력을 대기하거나 받지 않도록 설계되었습니다.

     

    그러므로 초기 설정 및 사용을 위해서 컨테이너를 RUN을 통해 실행합니다.

     

     

    1. run 으로 ubuntu 이미지를 컨테이너로 만들고 실행 해줍니다. 이때 -it는 i를 통해 입력을 받을 수 있게 하고 t를 통해 터미널을 생성합니다. 아래와 같이 실행 후 터미널 입력으로 바뀜을 알 수 있습니다.  exit를 통해 터미널을 종료 할 수 있습니다.

    ubuntu@ip-172-31-4-29:~$ docker run -it ubuntu
    root@1b0d3c18eebe:/#

     

     

     

    2. 아래와 같이 -d 옵션을 사용하게 되면 백그라운드(Background)로 프로 그램이 동작하게 됩니다. 아래와 같이 ps로 확인한 결과 status가 up 임을 알 수 있습니다.

    ubuntu@ip-172-31-4-29:~$ docker run -it -d ubuntu
    dd87a1b65a4cd48874d7ea585da7c5225e72e895304e976d83976ec41d989252
    ubuntu@ip-172-31-4-29:~$ docker ps
    CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
    dd87a1b65a4c   ubuntu    "/bin/bash"   4 seconds ago   Up 3 seconds             happy_nobel

     

     

     

    3.  attach 명령을 사용해서 백그라운드로 동작하는 우분투에 접속할 수 있습니다.

    ubuntu@ip-172-31-4-29:~$ docker attach dd87
    root@dd87a1b65a4c:/#

     

     

     

    4. 앞서 start를 사용해서 종료된 도커를 다시 실행할 수 있습니다.

    ubuntu@ip-172-31-4-29:~$ docker start dd87
    dd87
    ubuntu@ip-172-31-4-29:~$ docker ps -a
    CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS                      PORTS     NAMES
    dd87a1b65a4c   ubuntu        "/bin/bash"   7 minutes ago    Up 17 seconds                         happy_nobel
    1b0d3c18eebe   ubuntu        "/bin/bash"   15 minutes ago   Exited (0) 7 minutes ago              xenodochialhaw
    3aa7ae8b50f9   ubuntu        "/bin/bash"   45 minutes ago   Exited (0) 30 minutes ago             laughing_chyshev
    7fc5d1fcff44   hello-world   "/hello"      8 days ago       Exited (0) 8 days ago                 great_cerf

     

     

     

     

     

    5. 도커 리스트에 있는 컨테이너를 삭제하는 방법은 아래와 같이 exit로 종료 후 rm을 통해서 삭제를 합니다.

    ubuntu@ip-172-31-4-29:~$ docker attach dd87
    root@dd87a1b65a4c:/# exit
    exit
    ubuntu@ip-172-31-4-29:~$ docker rm dd87
    dd87

     

     

     

    6. 모든 도커 컨테이너를 삭제하고 싶으면 아래와 같이 prune 명령을 사용 합니다.

    ubuntu@ip-172-31-4-29:~$ docker container prune
    WARNING! This will remove all stopped containers.
    Are you sure you want to continue? [y/N] y
    Deleted Containers:
    1b0d3c18eebe1a2d664bf2e3603151b2e82af5bf88be371d594b5f9d333af40e
    3aa7ae8b50f938304f7c71adbb340f2f9f2c9ccb29f77b15c028cede7f178803
    7fc5d1fcff4422d52712394945729bf25cf8eceef1c8185142ff0d54966499fc
    
    Total reclaimed space: 5B
    ubuntu@ip-172-31-4-29:~$ docker ps -a
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

     

     

     

    반응형