도커(docker) 명령어 정리

도커 생성 및 접속 : docker run <옵션> <이미지 이름> <실행할 파일>
예시 : docker run -it -d -p 6001:80 –-name abcd ubuntu /bin/bash
(포트는 여러개 지정 가능하다. -p 6001:80 6002:22)

docker run 옵션 설명

-i, -t : 실행된 Bash 쉘에 입력 및 출력을 할 수 있다.  
–name : 컨테이너의 이름을 지정할 수 있다. (해당 옵션을 생략하면 랜덤한 이름으로 자동 지정됩니다.)  
-d : 컨테이너를 백그라운드로 실행시키는 옵션이다. 컨테이너 접속 후 해제하여도 컨테이너가 종료되지 않게 한다.  
-p : 포트 포워딩 옵션이다. 호스트 포트와 컨테이너 포트를 연결 한다. (여러개의 포트를 지정 가능)

실행중인 도커 출력 : docker ps
모든 도커 출력 : docker ps -a
도커 실행 : docker start <이미지 이름>
도커 정지 : docker stop <이미지 이름>
도커 접속 : docker attach <이미지 이름>
도커를 안끄고 컨테이너에서 나가기 : ctrl + p + q

기존 도커 컨테이너를 복사하는 방법 : 도커 이미지가 margaret이라고 가정하면

1. docker commit margaret  
2. docker images 로 생성된 이미지 ID를 확인하고 (4d6f9b59ea5d로 가정)  
3. docker tag 4d6f9b59ea5d <바꿀 이미지 이름>  
4. docker run -it -d -p 6001:80 –name margaret_copy <바꾼 이미지 이름> /bin/bash

이렇게 하면 기존에 있던 도커 컨테이너를 복사한 이미지를 만들 수 있다.

도커 허브 (docker hub)

도커는 여러 커스텀 컨테이너 이미지를 공유하는 커뮤니티가 있다.
예를 들면, 내가 apache2와 php가 깔린 컨테이너가 필요하다고 할 때 보통은 이미지를 기본 리눅스(ubuntu)로 생성하고
해당 컨테이너로 들어가 apt로 apache2와 php를 직접 설치했었다.

이러한 과정을 미리 작업해놓은 컨테이너는 매우 많다.
우리는 그 컨테이너 이미지를 다운받아서 바로 사용할 수 있다.

docker hub : https://hub.docker.com

도커 허브에 들어가서 자기가 원하는 프로그램 (apache2, php, flask 등)을 검색해서
firespring/apache2-php 가 나왔다면 docker pull firespring/apache2-php 이렇게 이미지를 다운받을 수 있다.