Docker(Ubuntu server 22.04) &명령어들
노트북에서 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 ->도커설치
( 만약 뭔가가 잘 안되면 아래코드 한꺼번에 복사해서 붙여보기 )
"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:버전이름 명시해야 해당버전 지워줌)