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 명령어 모음
- doxker에서 pull 을 통해 실행
- docker pull nginx
- run이나 create를 통해 실행 (최초 실행시 run으로)
- docker run -d -p 80:80 --name nx nginx
- 전체 확인
- docker ps -a
- 동작 중인 것만 확인
- docker ps
- 이미지 확인
- docker images
- 정지
- docker stop nx
- 이때는 이미지의 이름을 주지 않고 컨테이너의 이름을 주어야 한다.
- 삭제
- docker rm nx
- 삭제를 하려면 정지를 먼저 해야한다.
- 이미지 삭제
- docker rmi nginx
- 컨테이너가 떠있는 경우
- 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 명령어로 접속합니다.
'🚦 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 |