Cloud Computing

Docker(Ubuntu server 22.04) &명령어들

코딩펭귄 2022. 11. 14. 02:28

노트북에서 Docker돌리기에는 무리가 갈 테니 Docker다운로드를 가상머신안에서 한다.

이를 위해 리눅스운영체제인 Ubuntu를 설치해준다. (Ubuntu 연결 (접근)- ssh)

 

ssh = 두지점간의 연결을 암호화 시키는것

 

 

Ubuntu server 설치하기

 

1. azure-market place에서 Ubuntu server 22.04 LTS 설치한다

2-1. 표시한 연결-부분에 들어가서 표시한 부분 복사하고,

or 2-2 아래 페이지에서 ip주소 복사하고

 

3. prompt창 켜서(맥의경우 terminal) 복붙한거 입력해주고 (2-1사진에서면-i <private key path>) 부분 삭제해준다 

맥 terminal 에서 보면, 아래사진처럼

1. ssh 아이디@공용ip

2. yes

3. password 입력

순서로 하면 접속 된다(전부 관리자권한으로 접속하는것)

 

마지막 두줄보면 알수있듯이, 관리자root권한 필요하면, 'sudo' 입력해서 할수있다.

 

sudo apt-get update   -> 최신으로 sudo패키지 업데이트하는 명령어

sudo apt-get upgrage  -> upgrade까지 진행하는명령어

-> 여기까지가 시스템 준비하는 작업

 

 

 

 

Docker 설치하기

Docker가 참조하고있는 패키지들 설치하기

sudo apt-get install \  apt-transport-https  -> http(https=암호화되어있는것)프로토콜로 전송하게해줌(\ = 다음줄로연결)

ca-certificates -> 인증과 관련된 패키지

curl  -> 리눅스에서 간단한 웹통신 테스트

gnupg -> 오픈소스재단에서만든 패키지

lsb-release

- 필요한 패키지들 설치완료 -

 

Docker의 암호화방식과 관련된 키 설정하기

웹통신할때 필요한것들 설치

curl -fsSL https://download.docker.com/linux/ubuntu/gdp 

키 입력하라고 뜸

curl -fsSL  |  curl -fsSL https://download.docker.com/linux/ubuntu/gdp sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg   -> gpg키가 설치됨

( | : 파이프라인기법 : | 앞의 결과를 | 뒤로 넘겨줌 )

sudo apt-get install docker-ce docker-ce-cli containerd.io  ->도커설치

 

 

(  만약 뭔가가 잘 안되면 아래코드 한꺼번에 복사해서 붙여보기  )

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \  
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
  • 잘 설치되었는지 확인하고싶으면 -> sudo docker run hello-world 쳐보기
  • 빠져나가고싶으면  -> enter 누르기

 

windows terminal 다운받아보기

-> ms의 프로그램, terminal 이 예쁘게 화면에 나온다

-> ctrl V, ctrlC 다 된다

 

 

ps -> 리눅스명령, 현재의 리눅스서버에서 어떤 프로세스 실행중인지 볼수있는 명령

ps -al -> 더많은정보 볼수있음

1 : 실행하고있는 프로그램의 프로세스 id (불필요한 프로그램 제거시 사용)

2 :  실행하고있는 터미널

3 :  실행하고있는 시간

 

현재 실행중인 도커가 궁금하면 : sudo docker ps

 

docker 자체를 관리자권한으로 바꿔주기  -> sudo usermod -a -G docker $USER  (docker을 일반사용자들도 사용할수있도록)

-> 바뀐권한이 실행중인 docker에는 적용안됨 -> restart 해야됨 sudo service docker restart

-> 그래도 여전히 권한 없다고 뜸 -> 접속끊고 나가기 exit

-> 다시접속하기 : ssh 아이디@ip주소  

 -> docker ps 

---> 관리자권한으로 세팅 됨

 

 

-- docker 세팅 끝 --

 

 

 

docker image = 각각의 상태를 저장해놓은 file

우리가 실습시 사용했던건 Ubuntu 22.XX~~ -> 옛날버전의 Ubuntu 8 등등은 (오른쪽사진)AppA자리쪽인, 컨테이너에 넣어놓음 -> 사실 완벽한 이 자리가아닌, 이미 다른사람들이 만들어놓은 쌓여있는 컨테이너들(=리포지터리)을 다운로드받아서, 로컬디스크에 해당이미지를 저장하고나면 그걸로 이미지 띄움

 

리포지터리러부터 내용 가지고오는 명령 ->  docker pull --help (--help : 리눅스계열에서 도움달라는 뜻)

docker pull ubuntu:18.04 ->ubuntu 18.04버전의 이미지 가지고오는것(설치한단계는아님. 내 디스크에 다운로드만 한것)

ubuntu 실행시켜보기 -> docker run --help  ( docker run : 특정이미지 실행시킴 )

 

컨테이너에 접속  :  docker run  -it  --name demo1 ubuntu:18.04 /bin/bash   -> it = interactive terminal, 대화형임 , 로컬디스크에저장되었는 ubuntu:18.04를 불러와서 띄워줄것이다 / 최초로 실행되는곳이 어딘지(/bin/bash) / ( 서비스형태로 계속 떠있는 프로그램 = demon )

 

-> 루트로 접속하게되면 #으로 바뀜  ($로 시작하면 일반사용자)

 

demo2 만들기 -> docker run  it  --name demo2 ubuntu:18.04 /bin/bash

 

빠져나오기 + 종료됨  -> exit  

 

만약, 종료안되게 하고싶다면, demo3 만들기  (= demon형태로 실행시키고싶다면)

docker run  -it -d  --name demo3 ubuntu:18.04 /bin/bash  -> 코드만 뜨고 사라지지만, 메모리상에는 실행중임(docker ps 로 확인가능)

 

demo3 확인하기 -> docker exec -it demo3 /bin/bash

 

현재실행중인 디렉토리 확인시 사용 -> pwd

 

docker에서 어떤게 실행되고있는지 목록(기록)확인시 -> docker logs

 

계속해서 동작 follow하기위한 새로운 컨테이너 만들기 -> docker run--name demo3 -d busybox sh -c "while true; do $(echo date);sleep1; done"   (뜻 : 계속돌면서 echo(print출력해준다), date, 1초간쉬었다가 계속 실행(출력)시킴)

 

stop 시키고싶다 = docker stop demo3  ( 컨테이너는 메모리에 남아있고, 실행만 중지시킨것 -> docker ps -a 로 확인)

 

컨테이너 자체를 지우는것 -> docker rm demo3  (컨테이너가 메모리에서 진짜 내려간것)

 

docker의 이미지 지우고싶다 -> docker rmi ubnuntu18.04  (ubuntu:버전이름 명시해야 해당버전 지워줌)