Cloud/Docker

[docker] 도커 컨테이너 관리하기

Ma_Sand 2022. 8. 23. 01:53
반응형

도커 컨테이너

 도커 이미지를 실행할 수 있는 인스턴스이다. 개별 애플리케이션의 실행에 필요한 실행환경을 독립적으로 운용한다.

 

[출처] https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

 

 

1. 컨테이너 생성

docker run [옵션] [저장소 이름/]<이미지 이름>[:버전]

ex) docker run -d --name myweb -p 80:8080 tomcat:8.5.72-jdk8

 - 다운로드 받은 이미지가 없는 경우 자동으로 다운로드 받아 생성된다.

 - 이미지 다운로드(pull)과 컨테이너 생성(create), 실행(start), 접속(attach)까지 한번에 수행된다.

 - [옵션]

옵션 설명
-d 백그라운드에서 컨테이너를 실행한다.
-i -t 컨테이너 내부로 진입하여 컨테이너와 상호 입출력한다.
--name <이름> 컨테이너에 이름을 지정한다.(지정하지 않으면 16진수 임의값으로 이름이 생성된다.)
-p <호스트 포트>:<컨테이너 포트> 외부에서 컨테이너 내부로 접근할 수 있게 호스트 포트와 컨테이너 내부 포트를 연결한다.
-e <환경변수>=<값> 환경변수를 설정한다.
--link 다른 컨테이너에 링크를 추가한다.

 

 

2. 컨테이너 확인

docker ps [옵션]

ex) docker ps -a

 - CONTAINER ID: 컨테이너에 자동 할당되는 고유 ID 중 일부를 출력

 - IMAGE: 컨테이너 생성 시 사용된 이미지

 - COMMAND: 컨테이너 시작 시 자동으로 실행될 명령어이며, 대부분 이미지에 미리 내장되어 있음

                         컨테이너 생성 시 변경이 가능

 - CREATED: 컨테이너 생성 후 흐른 시간

 - STATUS: 컨테이너 상태

 - PORTS: 컨테이너에 개방된 포트, 호스트와 연결된 포트를 출력

 - NAMES: 컨테이너 생성 시 지정한 이름(--name 옥션)

 

 

3. 컨테이너 상세 내용 조회

docker inspect <컨테이너 이름 or ID>

ex) docker inspect myweb

 

 

4. 컨테이너 실행 및 종료

docker start/stop/restart <컨테이너 이름 or ID>

ex) docker start myweb
      docker stop myweb
      docker restart myweb

 

 

5. 컨테이너로 파일 복사

경로가 컨테이너 내부일 경우 <컨테이너명:경로>로 지정한다.

docker cp [옵션] <원본파일경로> <복사할 경로>

ex) docker cp d:\test.txt myweb:/root

 

 

6. 컨테이너 명령어 실행

 쉘(shell)을 실행하면 컨테이너에 접근할 수 있다. 쉘에 접근한 후 다양한 명령어를 사용할 수 있고, 종료 시 exit을 한다.

docker exec [옵션] <컨테이너 이름 or ID> <명령어>

ex) docker exec -it myweb /bin/bash

 

 

7. 컨테이너 삭제

docker rm [옵션] <컨테이너 이름 or ID> [컨테이너 이름 or ID ...]

ex) docker rm -fm myweb

 

 


 

war 파일 배포하기

1. Oracle DB 컨테이너 설치

 (1) Oracle 이미지 검색

  - 목록에서 이미지를 클릭한 후 상세설명을 확인한다.

 

 (2) Oracle 컨테이너 설치

  docker run -d --name mydb -p 40000:1521 -e TZ=Asia/Seoul oracleinanutshell/oracle-xe-11g

 

 (3) Oracle 컨테이너로 쿼리파일 복사

  - 일괄처리를 위해 미리 작성한 쿼리파일을 컨테이너로 복사한다.

docker cp d:\dockerweb\mydb.sql mydb:/root

 

 

2. DB 사용자 계정 생성 및 테이블 생성

 Oracle 컨테이너에 접속한 후 테이블을 생성한다.

 - 미리 복사한 sql 파일을 일괄 처리한다.

docker exec -it mydb /bin/bash
ls /root
sqlplus sys/oracle as sysdba @/root/mydb.sql

 - 생성된 테이블을 확인한다.

SELECT * FROM 테이블명;

 

 

3. Tomcat Server 컨테이너 설치

docker run -d --name myweb -p 80:8080 -e TZ=Asia/Seoul --link mydb:db tomcat:8.5.72-jdk8

 - --link <컨테이너 이름:별칭>: myweb 컨테이너에서 미리 생성한 mydb 컨테이너를 db라는 이름으로 불러서 사용하겠다는 설정이다.

 

 

4. War 파일 Tomcat에 배포

(1) tomcat 컨테이너로 war 파일 복사

docker cp d:\ROOT.war myweb:/usr/local/tomcat/webapps
docker restart myweb

 

 (2) 호스트 PC IP주소로 웹 접속(http://IP주소/main)

 

 

 

반응형