1. Docker 기본 설치
환경 : Oracle Linux 7.8 (CentOS 계열), Oracle JDK 1.8
# 준비사항
Docker Repository
cd /etc/yum.repos.d/
public-yum-ol7.repo 파일에서 아래 repository를 enable한다.
==============================================================================================================================
[ol7_latest]
enabled=1
[ol7_UEKR4]
enabled=1
[ol7_addons]
enabled=1
==============================================================================================================================
# 1. yum 패키지 업데이트
(docker package non available 오류 관련)
yum-config-manager --enable *addons
yum -y update
# 2. Docker & Docker Registry 설치
yum -y install docker-engine
# 3. Docker 실행
systemctl start docker.service
# 4. Docker 설치 확인
systemctl status docker
버전 확인 : docker -v
# 5. Tomcat 설치
docker pull tomcat:9 (쌍따옴표 뒤에 숫자는 버전을 뜻함)
# 6. Tomcat 실행
docker run -d -i -t -p 8080:8080 tomcat:9
# 7. 부록
Test Page가 안나올 때 --> docker exec -it tomcat_test /bin/bash 명령어 실행하면 해당 이미지의 위치로 이동
ls -rtl 해보면 webapp과 webapps.dist 디렉토리가 있는데 webapps.dist 디렉토리에 Test Page들이 있다.
webapps.dist 디렉토리 내부의 파일들을 webapp 디렉토리에 복사해주면 Test Page가 제대로 출력된다.
docker container에 접속하는 방법
docker exec -it [CONTAINER NAME or CONTAINER ID] /bin/bash
옵션으로 -it를 주는 이유는 STDIN 표준 입출력을 열고 가상 tty(pseudo-TTY)를 통해 접속하겠다는 의미이다.
# Docker root 계정으로 로그인하는 법
docker exec -i -t --user root brave_beaver /bin/bash
컨테이너 bash에 vim이 설치되어있지 않을 것이다.
우분투 계열은 apt-get, Centos 계열은 yum 으로 (Tomcat 9은 데비안이다.)
apt-get update
apt-get install nano --> nano 에디터
apt-get install vim --> vim 에디터
설치해주자.
작업 후 컨테이너 커밋
docker commit CONTAINER_NAME or CONTAINER ID
# Docker Host에서 컨테이너로, 컨테이너에서 로컬로 파일 전송하는 법
도커에서 컨테이너로 파일을 전송하려고 한다면 docker cp를 이용하자.
예를 들어 리눅스 컨테이너에 파일을 전송하고자 한다면
1. 호스트에서 컨테이너로 파일 전송하는 방법
docker cp /home/app/install/jennifer~~~.zip ${CONTAINER_NAME}:/path/jennifer~~~~.zip
2. 컨테이너에서 호스트로 파일 전송하는 방법
docker cp ${CONTAINER_NAME}:/path/sample.txt /home/app/install/sample.txt
# 에이전트와 데이터 서버 연동 시 문제 발생 해결
처음에 dot_unknown이 떠서 vi /etc/hosts 부분에 로컬 주소(데이터, 뷰 주소)를 추가해줬더니 다시 잘 나온다.
unzip 이 안될시 jar -xvf 사용, jar -xvf로 해제 시 .sh 파일들이 사용권한이 모두 풀려있기에 chmod로 따로 줘야한다.