windows에서 개발하고 막상 서버에 올렸는데 서버는 Linux라서 에러가 난다던가, 이런 경우가 있다!
Docker를 사용해서 다른 머신에서도 같은 환경을 구현할 수 있다!
서버로 코드를 업로드할 때 Dockerfile도 업로드하면 해결
=> 컨테이너들은 각기 분리,독립되어있다
=> 컨테이너 여러개를 만들어서 원하는 환경을 얼마든지 다양하게 모듈식으로 관리 가능하다
docker -v
로 설치된 버전을 확인할 수 있습니다컨테이너 조회
docker ps -a
(-a는 정지된 컨테이너까지 조회하는 옵션이다)
컨테이너 삭제
docker rm [컨테이너 ID or NAME]
컨테이너 실행 시 docker run --name=[컨테이너 이름]과 같이 --name 옵션을 추가하면 자동으로 만들어진 이름 대진 지정된 이름으로 컨테이너를 생성 가능하다, 또 ID는 앞 일부분만 입력 가능하다
도커 이미지 조회
docker images
도커 이미지 삭제
docker rmi [이미지 ID or 이미지명:TAG명]
Jenkins를 도커 컨테이너로 실행
docker run --name myjenkins -d -p 9080:8080 jenkins/jenkins
Jenkins 서버 컨테이너의 bash 실행
docker exec -it myjenkins bash
컨테이너의 OS 버전 확인
cat /etc/issue
Admin 패스워드 확인하기
cat /var/jenkins_home/secrets/initialAdminPassword
docker exec myjenkins cat /var/jenkins_home/secrets/initialAdminPassword
docker cp myjenkins:/var/jenkins_home/secrets/initialAdminPassword ./
Linux의 cat
대신 Windows에서는 type
을 사용하면 확인할 수 있다.
즉 type initialAdminPassword
'
우선 project/Dockerfile을 작성 후 도커 이미지를 빌드해야한다.
Vue2로 만든 프로젝트기에 vuejs 도커화하기를 참고하면 된다!
npm run build를 사용하는데, 나는 npm run serve로 배웠다. 전자로 입력하니 에러가 났다. 나중에 이 차이점을 공부하고 해결해봐야겠다. 아마 build를 하면 build 결과물은 dist directory에 담기는 것 같다.
Spring boot 기준
java -jar target\happyhouse_springboot-0.0.1-SNAPSHOT.war
원문
FROM openjdk:8-jdk-alpine ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
나의 경우에는 jar가 아니라 war이기 때문에 다음과 같이 해주었다.
FROM openjdk:8-jdk-alpine ARG JAR_FILE=target/*.war COPY ${JAR_FILE} app.war ENTRYPOINT ["java","-jar","/app.war"]
docker build . -t back:0.1
docker run -it -p 8080:8080 --rm back:0.1
잘 실행된 것이 보인다. 그런데 이상하게 페이지가 안들어가진다.. 포트번호도 맞추려고 노력했는데 이유는 모르겠다 ㄱ-