갑자기? docker? 싶기도 하겠지만...
내가 macOS를 쓰고 잇는데, 갑자기 Linux 환경에 적용 가능한 라이브러리 / 서버가 필요해요! 하는 경우도 있으니까
docker로 다른 OS를 구축하는 방법을 araboza.
참고를 많이 한 블로그
초보를 위한 도커 안내서 - 도커란 무엇인가?
도커를 처음 접하는 시스템 관리자나 서버 개발자를 대상으로 도커 전반에 대해 얕고 넓은 지식을 담고 있습니다. 도커가 등장한 배경과 도커의 역사, 그리고 도커의 핵심 개념인 컨테이너와 이
subicura.com
Install Docker
Sign in to Docker Desktop
Explore the Learning center and understand the benefits of signing in to Docker Desktop
docs.docker.com
공식 사이트에서 맥용 Docker를 받았당.
homebrew로 설치할 수도 있다고는 하지만, 버전 관리하기에는 이게 더 수월할 것 같아서 dmz를 이용해서 받아놓았당.
처음에 docker의 Dockerfile과 image, container에 대해서 이해가 잘 가지 않았는데, 간단하게 설명해 보자면... ...
Dockerfile을 통해 image를 빌드하고, 우리는 빌드한 image를 container상에서 실행한다고 보면 된다.
그러니까 Docker에서 image란 일종의 OS를 미리 정의해 놓은 것 자체이고, 컨테이너는 그 이미지를 실행하고 중지하기 위한 환경이라고 보면 된다.
이 이미지는 Dockerfile을 사용하여 생성할 수 있는데, 이를 만드는 방법은 나중에 ,, ,, 다루는 걸룽...... ^___^
우리는 이후 Ubuntu image를 받아서 docker container위에 실행시킬 거라고 보면 댄다. 구래서 웹서버를 돌리는 게 목적!!! 이라고 보면 된다.
Container 생성하기
docker run --help
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
실행하는 기본 커맨드는 위와 같다.
자주 사용하는 옵션들을 정리해 보자면...
- -d: detached mode(background mode)
- -p: 호스트와 컨테이너의 포트를 연결
- -v: 호스트와 컨테이너의 포트를 연결
- -e 컨테이너 내에서 사용할 환경변수 설정
- -name: 커넽이너 이름 설정
- -rm: 프로세서 종료 시 컨테이너 자동 제거
- -it: 터미널 입력을 위한 옵션
암튼. 우리는 Ubuntu를 docker에 실행하려고 한다.
해당 커맨드는 다음과 같다.
docker run -it --name meow -p 8080:8080 ubuntu:20.04
`meow` 라는 이름의 host: 8080 / container: 8080의 포트 번호를 쓰는 ubuntu 20.04 버전 컨테이너가 생성되었다!
바로 root 상으로 들어오게 된당.
나가려면 `exit` 명령어를,
다시 들어오려면 이후 나와 있을 Container 실행하기 부분을 참고하면 된당. (docker exec ...)
만약 이때 포트를 8080으로 설정하지 않았다면?
추후 톰캣의 포트 번호를 바꿀 수 있당...
(컨테이너는 불가)
[Tomcat] 아파치 톰캣 서버 포트 변경하기
안녕하세요 이번 포스팅에서는 톰캣서버의 포트를 변경하는 방법에 대해 소개할까합니다.기본적으로 톰캣의 포트는 8080인데 다른 포트를 사용하고싶으시면 설정파일에서 변경이 가능합니다.
geundung.dev
ubuntu 기본 settings
apt-get update
apt-get upgrade -y
apt-get install wget
apt-get install sudo
apt-get install vim
apt-get install valgrind
apt-get install gcd
업데이트와 더불어 이후 사용할 것들을 조금 깔아주었당 ......
분명 더 깔았던 것 같은데 왜케 기억이 안 나지?! 암튼.
취사선택해서 깔아주면 된당.
java 설치
apt-get install openjdk-[version].jdk
tomcat 설치
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.20/bin/apache-tomcat-10.1.20.tar.gz
tomcat 10.1.20 버전을 깔려고 한당.
전에 구축한 게 tomcat8을 기반으로 하고 있기에 10에서도 돌아가나 테스트하기 위함!
만약에 다른 버전을 깔고 싶다면 공식 홈페이지에서 원하는 tar 파일의 url을 복사해오면 된다.
cd /
tar xzvf apache-tomcat-10.1.20.tar.gz -C opt/
cd opt/
mv apache-tomcat-10.1.20/ tomcat
명령어 순서는 다음과 같당.
최상위 디렉토리로 이동
opt 폴더 하위로 압축 풀기
opt 폴더로 이동
apache-tomcat-10.1.20 폴더를 tomcat 폴더로 변경 (이름)
관리자 설정
vi /opt/tomcat/conf/tomcat-users.xml
해당 파일에 아래 내용을 추가한다.
<role rolename="manager-gui" />
<user username="manager" password="manager_password" roles="manager-gui" />
<role rolename="admin-gui" />
<user username="admin" password="admin_password" roles="manager-gui,admin-gui" />
</tomcat-users>
이때, password에는 각자의 패스워드를 넣음 된당
가장 마지막 </tomcat-users> 이전에 추가해 주면 댐!
vi /opt/tomcat/webapps/manager/META-INF/context.xml
vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
위 두 개 파일에서 value 부분을 다음과 같이 주석처리해 주어야 한다.
사유: tomcat server에서는 특정 IP를 제한하고 있는데, 이를 없애주는 거임.
이후, `/opt/tomcat/bin`에서 `./startup.sh`를 실행해 준 뒤, http://localhost:8080/ 으로 들어가 주면 ,, ,
이런 환경을 볼 수 있당.
.. 사실 이걸 글로 쓸 생각은 아녔는데 ㅜㅜ 너무 헤매구 삽질해서 감격스러운 마음에 기록으로라도 남겨본당.
Container 실행하기
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
- d: detached mode(background mode)
- -p: 호스트와 컨테이너의 포트를 연결
- -it: 표준 입력 STDIN을 열고, 가상 tty를 통해 접근
- --privileged: 권한 설정 추가
- /bin/bash: terminal 상에서 실행 후 명령어 입력
이전에 생성했던 container를 실행 후 terminal에서 컨트롤하고 싶을 때 사용한당.
참고 자료
https://docs.docker.com/engine/install/ubuntu/
Install Docker Engine on Ubuntu
Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.
docs.docker.com
https://cto.ai/blog/docker-image-vs-container-vs-dockerfile/
Differences between a Dockerfile, Docker Image and Docker Container
A Docker image is a file used to execute code in a Docker container. Docker images act as a set of instructions to build a Docker containe
cto.ai
https://80000coding.oopy.io/13cdcf5c-c484-44e9-8b28-bc902ef09925
MacBook에 Docker로 우분투 환경을 구축해보자! 🧑🏻💻
이 가이드의 목표는 아주 아주 간단합니다!
80000coding.oopy.io
https://velog.io/@whattsup_kim/Ubuntu-%EC%B4%88%EA%B8%B0-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
[Linux] Ubuntu 서버 초기 설정하기
Ubuntu 서버 초기 설정을 해봅시다
velog.io
Ubuntu에 Tomcat 서버 세팅하기
현재 기준으로 최신 버전인 10.0.23 Tomcat 서버 세팅을 정리하고자 한다.
jay-flow.medium.com
https://junyharang.tistory.com/18
[Ubuntu 20.04] Tomcat8 설치
안녕하세요? 주니하랑 입니다. 오늘은 Synology NAS에 설치한 Docker 안 Ubuntu 20.04에 Tomcat8를 설치를 해 보도록 하겠습니다. Ubuntu에 기본 설정에 대해서는 '[Ubuntu 20.04] Apache2 설치' 포스팅 열어 두도록
junyharang.tistory.com
https://decdream08.tistory.com/23
우분투에 Wget 설치하기
Wget은 HTTP/FTP를 사용해서 서버에서 파일을 내려받기 위한 Open source이다. 하지만 단순히 파일을 Download 하는 일 이외에 다음과 같은 일이 가능하다. 1. 웹페이지를 일정 간격 마다 반복하여 Download 2
decdream08.tistory.com
https://blog.naver.com/fromyongsik/40167969693
[펌]valgrind, 발그린드 사용법
출처 - http://stormaa.tistory.com/5 리눅스에서 프로...
blog.naver.com
https://ok-lab.tistory.com/127
[Docker] 컨테이너를 외부에 노출시키자!
도커 내에서 컨테이너를 생성하면 이 컨테이너는 외부에서 접근할 수 없고, 도커가 설치된 로컬 호스트에서만 접근할 수 있다. 외부에서 접근을 할 수 있도록 설정하기 위해서는 우리의 로컬 호
ok-lab.tistory.com
'TIL' 카테고리의 다른 글
[SeSAC] December 6, 2023 (1) | 2023.12.11 |
---|---|
[SeSAC] December 2, 2023 (1) | 2023.12.03 |
[SeSAC] November 30, 2023 (0) | 2023.12.01 |
[SeSAC] November 27, 2023 (1) | 2023.11.28 |
[SeSAC] November 20, 2023 (0) | 2023.11.21 |