$ docker search [이미지이름]
-- $ docker search mysql
$ docker pull [이미지이름]:[버전]
-- $ docker pull mysql:latest (latest 붙히면 최신버전으로 다운)
$ docker rmi [이미지 id]
$ docker rmi -f [이미지 id]
컨테이너를 삭제하기 전에 이미지를 삭제 할때, -f 옵션을 붙어면 컨테이너도 강제 삭제가 가능하다.
$ docker images
$ docker ps
$ docker ps -a
-a 옵션 : 컨테이너의 모든 목록을 볼 수 있음.
$ docker start [컨테이너 id 또는 name]
$ docker restart [컨테이너 id 또는 name]
$ docker stop [컨테이너 id 또는 name]
Bash Shell에서 exit 또는 Ctrl + D를 입력하면 컨테이너가 정지된다.
Ctrl + P, Ctrl + Q를 차례대로 입력하여 컨테이너를 정지하지 않고, 컨테이너에서 빠져나온다.
$ docker rm [컨테이너 id 또는 name]
$ docker rm docker ps -a -q
: 모든 컨테이너 삭제
$ docker run [options] image[:TAG|@DIGEST] [COMMAND] [ARG...]
-- $ docker run -d -p 3306:3306 -v /mnt/sdb1/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Pgh561511* --name mysqldb mysql
| 제목1 | 제목2 |
|---|---|
| -d | detached mode 흔히 말하는 백그라운드 모드 |
| -p | 호스트와 컨테이너의 포트를 연결 (포워딩) |
| -v | 호스트와 컨테이너의 디렉토리를 연결 (마운트) |
| -e | 컨테이너 내에서 사용할 환경변수 설정 |
| -u | 실행할 사용자 지정 |
| --name | 컨테이너 이름 설정 |
| --it | -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 (컨테이너의 표준 입력과 로컬 컴퓨터의 키보드 입력을 연결) |
| --rm | 프로세스 종료시 컨테이너 자동 제거 |
| --link | 컨테이너 연결 [컨테이너 명:별칭] |
$ docker exec -i -t [컨테이너 이름] /bin/bash
-- $ docker exec -i -t mysqldb bash
-- $ docker exec -it tomcat_1 /bin/bash
메이븐(maven) 빌드를 이용하여 웹 프로젝트를 war로 아카이빙 하자. 톰캣은 ROOT.war로 아카이빙 하여 webapp에 넣게 되면 context path가 '/'이 된다. 그러면 'http://localhost:10000/' 로 접속이 가능해 진다. 만약 sample.war로 아카이빙하면 'http://localhost:10000/sample'로 접속해야 한다.
컨테이너 내부의 tomcat 구조를 살펴보자. /usr/local/tomat 이 root 디렉토리이다. 루트 디렉토리의 webapp 폴더에 maven 빌드결과 생성된 ROOT.war를 복사하면 된다.
보통 원격지 서버에 파일을 보내기 위해서는 FTP 프로토콜을 이용한다. Docker의 경우는 Docker에서 제공하는 기능을 사용하면 간단하게 파일을 컨테이너에 복사할 수 있다. 명령은 docker cp를 사용하면 된다.
docker cp ./ROOT.war tomcat_1:/usr/local/tomcat/webapps/