도커사용에 처음 작업할때 사용되어지는 커맨드들을 Tomcat 이미지 기준으로 정리해 봅니다.
Docker 서비스 시작
$> service docker start
$> chkconfig docker on // --> start on boot
Tomcat Docker이미지 받기
$> docker pull tomcat:latest
설치된 Docker이미지 확인
$> docker images
설치된 이미지 삭제
$> docker rmi tomcat:latest
컨테이너 생성
$> docker run -it -p 8888:8080 --name tomcat8888 tomcat:latest /bin/bash
$> docker run -it -p 8889:8080 --name tomcat8889 tomcat:latest /bin/bash
컨테이너 생성시 Host컴퓨터와 컨테이너간에 데이터를 공유하고자 하는경우 -v Option을 추가한다.
다음은 컨테이너의 /usr/local/tomcat/logs 디렉토리를 호스트의 /root/dockerfiles/tomcat/logs로 연결한다.
$> docker run -it -p 8888:8080 -v /root/dockerfiles/tomcat/logs:/usr/local/tomcat/logs --name tomcat8888 tomcat:latest /bin/bash
한개이상 디렉토리를 공유하고자하는 경우.
$> docker run -it -p 8888:8080 \n
-v /root/dockerfiles/tomcat/logs:/usr/local/tomcat/logs \n
-v /root/dockerfiles/tomcat/webapps:/usr/local/tomcat/webapps \n
--name tomcat8888 tomcat:latest /bin/bash
** -v 옵션을 통해 공유하는 디렉토리는 컨테이너 쪽의 디렉리는 초기화 되면서 안에있는 내용이 모두 삭제된다.
생성된 Docker 컨테이너 확인
$> docker ps
$> docker ps -a
컨테이너 삭제
$> docker rm tomcat8889
다음부터는 start 명령으로 Docker를 실행 및 중지
$> docker start tomcat8888
$> docker stop tomcat8888
Docker컨테이너 안으로 들어가기
$> docker attach tomcat8888
외부 명령으로 컨테이너안의 명령수행
$> docker exec tomcat8888 /usr/local/tomcat/bin/startup.sh
컨테이너끼리 통신을 위해서 네트워크 생성하기
$> docker network create network1
$> docker network ls
동일한 네트웍에서 컨테이너 생성하기
다음은 두개의 Tomcat Server는 Mysql컨테이너와 동일한 네트웍에 존재하기 때문에 서로 통신이 가능해진다.
$> docker run -it -p 8888:8080 --name tomcat8888 --network network1 tomcat:latest /bin/bash
$> docker run -it -p 8889:8080 --name tomcat8889 --network network1 tomcat:latest /bin/bash
$> docker run -it -p 3306:3306 --name steven-mysql --network network1 -e MYSQL_ROOT_PASSWORD=1234 -d mysql:latest
위에서 생성한 MySql에 접속해봅니다. 192.168.56.107은 호스트 서버의 IP다. (컨테이너 생성시 3306 --> 3306 했기때문에 가능)
[root@docker ~]# mysql -h 192.168.56.107 -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
컨테이너 에서 컨테이너 정지없이 빠져나오기
$> Ctrl+p, Ctrl+q
'DevOps' 카테고리의 다른 글
AWS ELB's Sticky Sessions 설정 (0) | 2017.07.26 |
---|---|
VirtualBox와 CentOS / Ubuntu 간에 공유폴더 설정 (0) | 2017.07.25 |
CentOS7 에 Puppet server/agent 설치 (0) | 2017.07.21 |
AWS Route table 설정과 해석 (0) | 2017.06.10 |
Backup & Recovery : RTP vs RPO (0) | 2017.06.10 |