[docker] docker 이미지 만들기

이정훈·2023년 4월 17일
0

docker

목록 보기
3/7
post-thumbnail
  • ansible, terraform 과 같이 코드로 만들어진다 생각하자!

docker images 도커 이미지 확인!

  • 간단하게 만들어보자!
FROM  alpine:latest					# FROM 베이스 이미지 지정
RUN   apk update && apk add figlet	# RUN 컨테이너에서 실행할 명령어 지정
ADD   ./message /message			# ADD 호스트에서 컨테이너에 추가할 파일, 현재 디렉토리의 message 파일을 컨테이너의 / 디렉토리에 배치
CMD   cat /message | figlet			# CMD 컨테이너가 실행 된 후 마지막에 실행할 명령어 지정

docker build --tag message:1.0 이미지 생성
docker run message:1.0 만든 도커 실행

tomcat-mysql

docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=qwer1234 -p 3306:3306 -d mysql:5.7.41 mysql 이미지 파일 사용하기! 계정도 만들어서 넣어주기

  • mysql workbench 들어가서 데이터베이스 테이블 만들고 자료 넣어놓기
create database web;
use web;

CREATE TABLE student (sname VARCHAR(10), sage INT);
	INSERT INTO student VALUES('kim',10);
	INSERT INTO student VALUES('lee',20);
	INSERT INTO student VALUES('park',30);
	INSERT INTO student VALUES('sim',40);

FROM tomcat:9.0.73-jdk8-corretto-al2				# base로 사용할 톰켓!
RUN rm -rf /usr/local/tomcat/conf/server.xml		# run으로 대체할것들을 미리 삭제!
ADD ./server.xml /usr/local/tomcat/conf/server.xml
RUN mkdir /usr/local/tomcat/webapps/ljh
ADD ./db.jsp /usr/local/tomcat/webapps/ljh/db.jsp	# add로 추가할 친구들 추가해주기!
ADD ./mysql-connector-java-8.0.19.jar /usr/local/tomcat/lib/
EXPOSE 8080											# 열어줘야 들어오니깐 열어줄 친구들!
EXPOSE 8009
CMD catalina.sh run									# 실행시키자!

docker build --tag mytomcat:1.0 . 이미지 파일 만들어주고
docker run -p 8080:8080 -d mytomcat:1.0 만든 이미지 파일 실행해주고

  • 온프레미스에서 실행했던 방법으로 실행하면 컨테이너에서는 작동이 안될 수 있다. 컨테이너에서 실행되는 방법을 이미지에서 찾아서 넣어주면 된다! 여기는 도커허브에서 확인 할 수 있다.
    (CMD catalina.sh run) 요걸로 실행!
  • 수정하고 추가할 친구들은 Dockerfile이 있는 곳에 같이 넣어주면 된다.
  • 도커 이미지를 만들어서 실행했는데 바로 죽는다. 그럼 bash에 붙아서 뭐가 문제인지 확인해보는게 좋다.

apache - tomcat

FROM httpd:latest
ADD ./mod_jk.so /usr/lib64/httpd/modules/mod_jk.so
ADD ./workers.properties /etc/httpd/conf/workers.properties
RUN rm -rf /etc/httpd/conf/httpd.conf
ADD ./httpd.conf /etc/httpd/conf/httpd.conf
EXPOSE 80
CMD httpd-foreground

추가되는 친구들은 아파치에 변경되어야할 설정들을 미리 만들어 같은 디렉토리에 넣어줘야한다!

  • 아파치가 실행되는 환경을 만들었는데 톰켓의 mysql과 연동이 안되고 있다. 경로, 포트 등을 잘못열어준거같다...
profile
싱숭생숭늉

0개의 댓글