Docker : Managing Containers Application


시작하기

docker run -d -p 80:80 docker/getting-started

pull

pull 명령어를 통해서 이미지를 다운로드한다.

이때 다운 받아진 이미지는 실행이 불가능하다.

pull된 이미지를 실행을 하기 위해서는 Container를  만들어야 한다.


create

create 명령어를 통해서 컨테이너를 만들 수 있다.

실행시킬려면 start로 실행할 수 있고 메모리에서 실행되게 된다.


run

run 명령어를 통해 pull, create, start 3가지를 모두 이용할 수 있다.

만약 pull이 되어있는 이미지라면 run 명령어를 이용했을 때 pull이 다시 되진 않는다. create, start만 된다.

 

이미지를 컨테이너로 시작했다면 create, start만 실행되는데 run을 2번 하게되면 컨테이너가 또 새로 만들어진다.

이렇게 되면 불필요한 컨테이너가 계속 만들어질 수 있다.

 

run은 create가 실행되어야할 때만 필요하므로 차라리 run과 create를 따로 사용하는 것이 좋다.


stop

3개를 중지하고 싶을 때에는 stop 명령어를 이용하면 된다.

컨테이너가 꺼진다.


rm

rm을 이용한다면 컨테이너를 삭제할 수 있다.


rmi

rmi를 이용한다면 이미지를 삭제할 수 있다.


commit

commit 컨테이너를 다시 이미지화시킬 수 있다.

 


도커 이미지 다운로드와 삭제

$ docker pull consol/tomcat-7.0
$ docker rmi consol/tomcat-7.0

톰캣 컨테이너 생성 및 실행

$ docker run -d --name tc tomcat

실행중인 컨테이너 확인

$ docker ps # 톰캣 컨테이너 확인


모든 컨테이너 확인

$ docker ps -a # 모든 컨테이너 확인

컨테이너 중지

$ docker stop f79d5bb0eace # 컨테이너 실행 중지 f79d5bb0eace

컨테이너 삭제

$ sudo docker rm f79d5bb0eace # 컨테이너 삭제 f79d5bb0eace

➜  ~ docker run -d -p 80:80 --name nx nginx 
➜  ~ docker run -d -p 80:80 --name nx2 nginx
➜  ~ docker run -d -p 88:80 --name nx3 nginx

nx2는 포트가 nx와 같아서 실행이 되지 않는다.

 


➜  ~ docker ps -a

실행중이지 않는 nx2를 지워보자

➜  ~ docker rm c70e2d316588                

실행중인 것을 지워보자

 

➜  ~ docker rm nx3

지워지지 않는다.

stop으로 멈춰주어야 지울 수 있다.

 

➜  ~ docker stop nx3
➜  ~ docker rm nx3

그러면 지워지는 것을 확인할 수 있다.


➜  ~ docker stop nx  
➜  ~ docker start nx  

지우지 않고 멈추었다가 실행하기


Docker 명령어 모음

  1. doxker에서 pull 을 통해 실행
    1. docker pull nginx
  2. run이나 create를 통해 실행 (최초 실행시 run으로)
    1. docker run -d -p 80:80 --name nx nginx
  3. 전체 확인
    1. docker ps -a
  4. 동작 중인 것만 확인
    1. docker ps
  5. 이미지 확인
    1. docker images
  6. 정지
    1. docker stop nx
    2. 이때는 이미지의 이름을 주지 않고 컨테이너의 이름을 주어야 한다.
  7. 삭제
    1. docker rm nx
    2. 삭제를 하려면 정지를 먼저 해야한다.
  8. 이미지 삭제
    1. docker rmi nginx
    2. 컨테이너가 떠있는 경우
      1. docker rmi nginx -f

 

docker run --rm -it ubuntu:20.04 /bin/bash

--rm 으로 실행하고 exit로 종료하면 

종료됨과 동시에 삭제된다.

 

docker run -it ubuntu:20.04 /bin/bash

--rm 없이 실행하고 종료하면

컨테이너가 하나 더 존재한 상태로 남아있는다.


MySQL 실행하기

-d 옵션을 추가하여 백그라운드로 실행시킨다.

--name 옵션을 주어 컨테이너 이름을 mysql로 만든다.

 

exec를 통해 mysql이라는 이름을 갖는 컨테이너에 접속해서 mysql을 실행한다.

 


exec

exec 명령어는 run 명령어와 달리 실행중인 도커 컨테이너에 접속할 때 사용하며

컨테이너 안에 ssh server등을 설치하지 않고 exec 명령어로 접속합니다. 

 

 

Ref : www.notion.so/b67ed727aea4467cbc3226bb0c8e8336

'🚦 Server > Docker' 카테고리의 다른 글

Docker 로 python 실행하기  (0) 2021.01.08
Docker - image가 저장되는 방식  (0) 2021.01.08
Docker - image, docker file, docker hub  (0) 2021.01.07
Docker 설치 - Mac  (0) 2021.01.07
Docker 란?  (0) 2021.01.06
복사했습니다!