👉 기본 세팅
일단 깔끔하게 다 지우고 시작하자.
ex02에 Dockerfile 생성 세팅하자.
도커허브에서 openJDK 검색 → 무료다.
도커허브에서 Sort by A-Z 설정하고
11-jdk 검색어로 검색해서 찾자!slim이라는 컨벤션은 해당 기능만 가져오고 싶을 때 사용.
"Slim" 패키지는 해당 라이브러리나 프레임워크의 핵심 기능만 포함하고, 추가적인 부가 기능이나 모듈은 포함되지 않습니다. 예를 들어, 로깅, 테스트, 디버깅과 같은 기능이 제외될 수 있습니다.
11-jdk-slim 은 debian 계열의 OS를 사용한다.
환경변수 만드는 법
환경패스 설정하는 법
👉 Dockerfile 작성
JavaScript
// Dockerfile 작성
FROM openjdk:11-jdk-slimJavaScript
//bash에서 빌드 명령어
docker build -t codingspeacialist/openjdk:11 .아주 간단하게 빌드가 되었다.
docker images
도커 이미지로 확인 가능JavaScript
//docker run -dit 이미지명 bash (쉘 종류 많음) sh
docker run -dit codingspeacialist/openjdk:11 bash컨테이를 안끄고 실행하고 싶다면 -dit 를 붙이면 된다.
bash가 만약에 설치가 안되어있으면 sh(shell)로 실행해야 될 수도 있다.
명령어 설명
JavaScript
// 컨테이너 연결하는 명령어
docker attach 컨테이너 ID접속은 attach로 하면 된다.
docker attach: Docker 명령어로, 이미 실행 중인 컨테이너에 연결합니다.👉 체크
java --version
버전 확인 openjdk 11이 설치 되어있구나.echo $JAVA_HOME
JAVA_HOME 변수도 등록이 되어있구나. 그럼
cd $JAVA_HOME 으로 해당 폴더도 이동 가능하겠네bin폴더는 무조건 존재한다.
ls으로 내부를 확인 해보면 javac랑 java 가 보이네.
JavaScript
// ls의 반환 값을 파이프라인 (|) 을 통해서 grep으로 넘긴다. 그중에서 java를 찾는다.
ls -l | grep javacd ~/
홈 폴더 확인 명령어pwd
현재 위치 확인 가능명령어echo $HOME
HOME도 환경 변수가 되네~JavaScript
// -a는 숨김 파일도 확인할 수 있다.
ls -a루트 폴더 내부를 보면 이렇게 나오네,
.bashrc 를 vi로 실행 해보자.
vi .bashrc
VI가 없구나cat .bashrc
자세히 보기 명령어인 cat으로 bashrc를 자세히 보기가 가능하다.
여기서 환경변수를 등록한다. cat .profile
cat .profile도 들어가보자.
음… 볼게 없네 라고 하심.🔹 hello.sh 생성하기
JavaScript
// hello.sh 파일 bash에서 생성하기
1. mkdir hello // hello폴더를 만든다.
2. 폴더에 접근
3. echo 'echo Hellow World' > hello.sh 로 해당파일을 만든다.
4. ls 명령어로 생성을 확인한다. 리다이렉션 연산자 :
“ > “- 리다이렉션 연산자로, 표준 출력(stdout)을 지정된 파일로 보냅니다.
- 여기서는
>연산자가echo명령어의 출력을hello.sh파일로 리다이렉트합니다.
>는 해당 파일이 이미 존재하면 내용을 덮어쓰고, 파일이 없으면 새로 만듭니다.
🔹 hello.sh 권한 수정하기
ls -l
파일 내용 상세보기 권한까지 볼 수 있다.
chmod 777 hello.sh
hello.sh 파일의 권한을 변경한다. 여기서 “777”은 파일에 모든 사용자에게 읽기, 쓰기, 실행 권한을 부여하는 것을 의미.🔹 왜? 그냥실행하면 안되고, “./” 을 붙여야 되지??
왜 바로 못찾고
./ 키워드가 필요했을까???- 현재 디렉토리에 있는
hello.sh파일을 실행하려고 했으나, 셸은 이를 찾을 수 없었습니다. 이는 현재 디렉토리가PATH환경 변수에 포함되지 않았기 때문
- 기본적으로 현재 디렉토리(
.)는PATH에 포함되지 않는다. 이는 보안상의 이유로, 현재 디렉토리에서 의도하지 않은 실행 파일이 실행되는 것을 방지하기 위함.
- 따라서 현재 디렉토리의 파일을 실행하기 위해서는 “
./”을 명시 해줘야 함.
👉 export 사용법
🔹환경변수 확인
echo $PATH
를 실행하면 등록된 환경변수를 확인할 수 있다. 🔹 export 명령어의 역할
JavaScript
export 명령어는 셀 변수 또는 함수가 현재 셀 프로세스뿐만 아니라 모든 자식 프로세스에서 사용할 수 있도록 만든다.
export 를 사용해야지 전역변수 = 시스템 변수가 된다.
하지만 컨테이너가 꺼지만 모든 게 날라간다는 단점이 있다.
이를 위해서 .bashrc에 저장해야한다.🔹 export 사용
JavaScript
// .bashrc 파일에 새로운 환경 변수를 추가하는 명령어
echo 'export PATH=$PATH:/root/hello' >> ~/.bashrc그래서 export명령어자체를 bashrc에 등록하는 문법이다
하지만 이대로 종료하게 되면 변경내용이 저장이 되지 않는다.
source ~/.bashrc
변경한 환경변수를 바로 적용하고 싶다면, 해당 명령어로 실행을 해야지 적용이 된다. 이제 어디서나 실행하면 확인할 수 있다.
🔹개념정리
리눅스는 실행될 때 Path환경변수를 읽는다.
JavaScript
// 오늘의 수업 핵심
1. PATH -> 키워드 (정해진 환경변수)
- PATH를 키워드로 설정은 어디서 했을까?
- /etc/profile
2. 환경변수 생성 -> export 명령어
3. .bashrc -> 부팅시 읽어지는 파일
4. 부팅안하고 적용하고 싶다면? 어떤 파일이든!!
- source 파일명
5. bash를 안쓰고, 다른 쉘 설치해서 쓴다면?
- 그 쉘에 대한 프로파일 설정 파일이 만들어진다.
예) .zshrc
6. 파일 만들때
- echo '내용' > 파일명 -> [ > ] 사
- append를 하고 싶다면 ? [ >> ] 사용👉 자 다시 합시다.
$PATH는 무조건 있다. 여기에 추가하면 된다.
