Docker 학습 [1]

손성수·2023년 6월 1일

Docker

목록 보기
1/1
post-thumbnail
Linux OS에 대한 이해

리눅스의 특징

  • 오픈소스
    소스코드를 자유롭게 보고 수정할 수 있다
    다양한 종류의 Linux기반 OS가 존재
  • 마우스/키보드를 사용해 조작하는 GUI 환경의 Windows/MAX과 달리
    기본적으로 CLI환경에서 사용한다.
  • Linux의 명령어와 옵션의 구조
  • Linux를 사용하는 이유
    오픈소스이기때문에 무료로 사용 가능
    다양한 사람들이 소스코드를 보고 수정할 수 있다.
    다른 종류의 OS에 비해 안정적인 환경에서 운영 할 수 있다.



AWS에서 Linux기반 EC2 생성하기

AWS에서 Linux기반 EC2 생성하기

  • SSH 설정
    SSH는 보안에 민감한 문제이기 때문에 아무 IP에서 접근하도록 하는것은 적합하지 않다, 하지만 테스트 환경이기때문에 아무 IP에서 접근할 수 있도록 설정



SSH 다루기

SSH

  • 시큐어 셸 (SSH)
    네트워크 상의 다른 컴퓨터에 로그인 하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용프로그램

  • cmd , git bash
ssh -i <keypair 경로> ubuntu@<EC2 PUBLIC IP>

  • 상대경로
    나의 현재 위치를 기준으로 경로를 지정
    ex) cd ./dir/ 현재 위치에 존재하는 dir 디렉토리로 이동
    ex) cd ../ 현재 위치를 기준으로 상위 디렉토리로 이동
  • 절대 경로
    현재 위치와 관계없이 절대적인 경로 이용
    ex) cd /home/user/example/dir/
  • wild card(*)란?
    특정 파일이나 디렉토리를 지정할 때, 이름을 지정해 줘야 하는 경우
    wild card(*)를 사용하면 더 빠르게 탐색하거나 실행이 가능
ls -l ./*.txt # .txt로 끝나는 모든 파일 목록 출력하기

디렉토리를 생성하고 이동해보기

  • mkdir / 디렉토리 생성하기
    mkdir ./test # 현재 경로에 test 디렉토리 생성하기
     mkdir ./test/test2 # test 디렉토리 안에 test2 디렉토리 생성하기
     mkdir /home/ubuntu/test3 # /home/user 경로에 test3 디렉토리 생성하기
  • pwd / 현재 경로 확인하기
    pwd # 현재 경로 확인
  • cd / 경로 이동하기
    cd ./test # 현재 경로의 test 디렉토리로 이동
     cd ./test/test2 # test 디렉토리 안에 test2 디렉토리로 이동
     cd ../test3 # 상위 디렉토리의 test3 디렉토리로 이동
     cd /home/user/test4 # /home/user/test4 디렉토리로 이동
  • ls / 파일 목록 보기
    ls # 현재 위치에 파일 목록 보기
     ls ./test # test 경로에 파일 목록 보기
     ls -l # 현재 위치에 파일 목록을 더 자세히 보기
     ls -a # 현재 위치에 숨겨짐 파일을 포함해서 보기
     ls -al # 현재 위치에 숨겨진 파일을 포함해서 목록을 더 자세히 보기
     # 이외에도 다양한 옵션들이 존재하며, ls --help 명령어로 확인 가능합니다.
  • 파일을 생성하고 삭제해보기
    • touch / 파일 생성하기
      touch test.txt # test.txt 파일 생성하기
    • cp / 파일 복사하기
      cp test.txt test_copy.txt # test.txt 파일을 test_copy.txt라는 이름으로 복사하기
       cp -r directory directory_copy # 폴더를 복사할 경우 -r 옵션 사용
    • mv / 파일 이동하기
      mv ./directory1/test.txt ./ # directory1 경로의 test.txt 파일을 현재 경로로 이동
      # mv는 파일의 이름을 변경할 때도 사용됩니다.
       mv test.txt text2.txt # test.txt 파일의 이름을 test2.txt로 변경
    • rm / 파일 삭제하기
      rm test.txt # test.txt 파일 삭제
       rm -r directory # 디렉토리를 삭제하기 위해서는 -r 옵션을 붙여줘야 합니다.

  • vi 편집기 활용해보기
vi test.txt
# 만약 존재하는 파일이 아니라면 파일을 자동 생성
# 경로 설정을 안해줄시 현재 경로에 생성된다.
- vi 편집기 mode 종류
    - insert mode : 텍스트를 입력 할 수 있는 상태
    - commend mode : 특수한 commend를 입력 할 수 있는 상태
- insert mode 진입 방법
    - `i` : 현재 위치에서 insert mode 진입
    - `a` : 현재 위치에서 커서를 한 칸 앞으로 이동 후 insert mode 진입
    - `A` : 현재 위치에서 가장 마지막 텍스트로 이동 한 후 insert mode 진입
    - `o` : 현재 위치에서 한칸 개행 한 후 insert mode 진입
    - `esc` : insert mode 나가기
  • commend mode 명령어
    • u : undo (ctrl + z와 동일)
    • ctrl + r : redo
    • gg : 커서를 가장 처음으로 옮김
    • G : 커서를 마지막 줄로 옮김
    • dd : line 잘라내기
    • yy : line 복사
    • p : 붙여넣기
    • :se nu : 라인 줄 표시
    • :숫자 : 숫자 라인으로 이동 (ex - :10 : 10번째 라인으로 이동)
    • 특정 단어 검색
      • /word : word라는 단어를 검색
      • /\cword : 대소문자를 구분하지 않고 word라는 단어를 검색 (ex - /\cword)
      • n : 다음 단어 검색
      • N : 이전 단어 검색
    • 수정한 문서 저장
      :w : 저장
      :q : 나가기
      :wq : 저장 하고 나가기
      :q! : 수정내역이 있어도 저장하지 않고 강제로 나가기
  • 파일에 있는 내용 확인하기
    • cat / 파일 내용 보기
      cat test.txt # test.txt 파일의 내용 보기
    • head / 파일의 시작 부분 보기
      head test.txt # test.txt 파일의 첫 10줄 내용 보기
       head -50 test.txt # text.txt 파일의 첫 50줄 내용 보기
    • tail / 파일의 끝 부분 보기
      tail text.txt # text.txt 파일의 마지막 10줄 내용 보기
       tail -50 text.txt # text.txt 파일의 마지막 50줄 내용 보기



패키지 매니저

Ubuntu 패키지 매니저 APT

  • Linux 버전에따라 사용하는 매니저가 다르다.
    • ubuntu에서는 ifconfig 라는 명령어를 사용해 ip 주소를 포함해 다양한 네트워크 정보를 확인할 수 있습니다.
      ubuntu 버전에 따라 ifconfig 명령어가 기본적으로 설치 되어 있을 수도 있습니다.
sudo apt update # apt install 명령어로 설치할 수 있는 패키지들을 최신화한다.
sudo apt install net-tools
  • sudo : 관리자 권한



자주 사용되는 명령어

  • tab / 자동완성 시키기
    • 키보드의 tab 버튼을 활용해 파일, 디렉토리 이름 등을 자동완성 시킬 수 있습니다.
  • grep / 특정 문자열이 포함 된 파일 찾기
    grep word ./* # 현재 경로의 모든 파일을 대상으로 word라는 단어가 포함된 파일 찾기
     grep word ./* -r # -r 옵션을 붙이면 디렉토리 내부까지 모두 탐색합니다.
  • find / 특정 조건의 파일 찾기
    find / -name "*.txt" # 최상위 경로에서 .txt로 끝나는 파일 혹은 디렉토리 검색
     find ./ -type d # 현재 경로에서 모든 디렉토리 검색
     find ./ -type f -name "*.txt" # 현재 경로에서 .txt로 끝나는 파일 검색
  • history / 명령어 기록 출력하기
    history # 지금까지 사용한 명령어 출력
  • htop / 리소스 사용량 확인하기
    htop # 현재 사용중인 리소스 확인하기
  • df / 남은 디스크 용량 확인하기
    df -h # 디스크 여유 공간 확인하기
  • du / 특정 파일 혹은 폴더가 사용중인 디스크 용량 확인하기
    du -sh ./* # 현재 경로의 파일 및 디렉토리가 차지하는 용량 확인하기

git clone 문제 해결

git clone 이슈

  • ERROR
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

  • 새로운 SSH키를 발급받는다.
ssh-keygen
cat ~/.ssh/id_rsa.pub

  • 발급받은 ssh 키 등록

profile
더 노력하겠습니다

0개의 댓글