2024.04.16

 

iCREAM Free Website Template - Free-CSS.com.zip
1.03MB
Xtra Blog Free Website Template - Free-CSS.com.zip
6.64MB

 

 

🗓️강의 스케줄

Docker 0415 ~ 0418 4일간

Kubernetes 0419 ~ 0503 11일간

AWS Cloud 0506 ~ 0517 10일간

AWS Project 0520 ~ 0607 15일간 

 

CKA, CKAD 자격증 : 쿠버네티스 자격증 

 

 

🔗VC_redist.x64.zip 

🔗 WinSCP-6.1.1-Setup.zip 

🔗 VirtualBox-7.0.8-156879-Win.zip 

🔗 Xftp-7.0.0141p.zip 

🔗 docker.zip 

🔗 Xshell-7.0.0141p.zip 

 

🐋Docker

복잡한 리눅스 어플리케이션을 컨테이너로 묶어서 실행가능 

컨테이너 / 컨테이너 이미지를 전세계 사람들과 공유 

리눅스 커널에서 제공하는 컨테이너 기술 이용 

Github와 비슷한 방식의 Docker Hub 제공 

컨테이너❓ 가상화보다 훨씬 가벼운 기술 

 

가상머신

가상화 기술을 이용하여 서버를 임대해주는 서비스가 '클라우드 서비스' 

AWS, Google, KT, AZURE  

Customer Service Provider, MSP (Managed Service Provider) 

 

 

파일 - 도구 - Network Manager 

 

NAT Networks - General Options 

Name: Local Network로 변경

IP: 10.100.0.0/24 

 

포트 포워딩 탭 

아래와 같이 내용 수정

이름: Docker 

프로토콜: TCP 

호스트 IP: 127.0.0.1 

호스트 포트: 105 

게스트 IP: 10.100.0.105 

게스트 포트: 22 

 

 

Xshell 설치 

 

끝나고 라이센스 '나중에' 클릭 

 

새로 만들기 - 연결 

이름: Docker

프로토콜: SSH

호스트: 127.0.0.1 

포트 번호: 105 

 

사용자 인증 - 이름, 암호 설정 

Name: guru

PW: work 

 

 

VirtualBox - 가상 시스템 가져오기 

 

docker.ova 선택 

 

모든 네트워크 어댑터 MAC 주소 포함 

 

 

우클릭 - 설정 

 

네트워크 - 어댑터 1 

다음에 연결됨: NAT 네트워크 선택 

 

Virtual Box로 가서 시작

 

~실행 중~ 

 

Xshell로 가면 이런 창이 뜸 

연결

 

수락 및 저장 

 

 

아래와 같이 Docker 창 뜨면 된다 

 

 

 

리눅스 ↔ 로컬 PC간의 자료 공유를 원할하기 하기 위해 

WinSCP-6.1.1-Setup.exe 설치 

 

 

 

저장 ▼

✓바탕화면에 바로가기 만들기 

 

 

비번: work

 

 

 

 

 

Xshell root 계정 이동 

$ su -

암호: password

 

#ifconfig 

 

#ip addr 

 

 


 

 

https://github.com/powermvp116

k8s-project-main.zip
4.01MB

 

 

내가 이동한 했던 명령어롤 TXT로 볼 수 있음 

 

 

Docker install Guide 1.0.pdf 참고 

Docker install Guide 1.0.pdf
0.41MB

패키지 사용 설치 (ctrl + insert 로 copy , shift + insert로 복사, 단 root 로 로그인)
root@docker:~# sudo apt-get update
기존:1 http://kr.archive.ubuntu.com/ubuntu focal InRelease
기존:2 http://security.ubuntu.com/ubuntu focal-security InRelease             
받기:3 http://kr.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]   
기존:4 http://kr.archive.ubuntu.com/ubuntu focal-backports InRelease
받기:5 http://kr.archive.ubuntu.com/ubuntu focal-updates/universe i386 Packages [782 kB]
받기:6 http://kr.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1,179 kB]
내려받기 2,075 k바이트, 소요시간 3초 (775 k바이트/초)      
패키지 목록을 읽는 중입니다... 완료
root@docker:~#

2) https 사용해서 레포지토리를 사용할 수 있도록 필요한 패키지 설치 
root@docker:~#  sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
패키지 ca-certificates는 이미 최신 버전입니다 (20230311ubuntu0.20.04.1).
ca-certificates 패키지는 수동설치로 지정합니다.
패키지 curl는 이미 최신 버전입니다 (7.68.0-1ubuntu2.22).
패키지 software-properties-common는 이미 최신 버전입니다 (0.99.9.12).
software-properties-common 패키지는 수동설치로 지정합니다.
다음 새 패키지를 설치할 것입니다:
  apt-transport-https
0개 업그레이드, 1개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
1,704 바이트 아카이브를 받아야 합니다.
이 작업 후 162 k바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 http://kr.archive.ubuntu.com/ubuntu focal-updates/universe amd64 apt-transport-https all 2.0.10 [1,704 B]
내려받기 1,704 바이트, 소요시간 1초 (2,804 바이트/초)
Selecting previously unselected package apt-transport-https.
(데이터베이스 읽는중 ...현재 187880개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../apt-transport-https_2.0.10_all.deb ...
Unpacking apt-transport-https (2.0.10) ...
apt-transport-https (2.0.10) 설정하는 중입니다 ...
root@docker:~#

3) Docker 공식 리포지토리에서 패키지를 다운 받았을 때 위변조 확인을 위한 GPG 키 추가 
root@docker:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK

4) Docker.com의 GPG 키 등록됐는지 확인 
root@docker:~# apt-key fingerprint

5) Docker 공식 저장소를 리포지토리로 등록 
root@docker:~# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
받기:1 https://download.docker.com/linux/ubuntu focal InRelease [57.7 kB]
받기:2 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [40.9 kB]              
기존:3 http://kr.archive.ubuntu.com/ubuntu focal InRelease                                         
기존:4 http://security.ubuntu.com/ubuntu focal-security InRelease                                  
기존:5 http://kr.archive.ubuntu.com/ubuntu focal-updates InRelease            
기존:6 http://kr.archive.ubuntu.com/ubuntu focal-backports InRelease
내려받기 98.6 k바이트, 소요시간 1초 (103 k바이트/초)
패키지 목록을 읽는 중입니다... 완료

6) 저장소 등록정보에 기록됐는지 확인 
root@docker:~# grep docker /etc/apt/sources.list
deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable
# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu focal stable

7) 리포지토리 정보 갱신 
root@docker:~# apt-get update
기존:1 https://download.docker.com/linux/ubuntu focal InRelease
기존:2 http://kr.archive.ubuntu.com/ubuntu focal InRelease                                         
기존:3 http://security.ubuntu.com/ubuntu focal-security InRelease                                  
기존:4 http://kr.archive.ubuntu.com/ubuntu focal-updates InRelease            
기존:5 http://kr.archive.ubuntu.com/ubuntu focal-backports InRelease
패키지 목록을 읽는 중입니다... 완료   

8) Docker Container Engine 설치 
root@docker:~# apt-get install -y docker-ce
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
  containerd.io docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-compose-plugin
  git git-man liberror-perl pigz slirp4netns
(생략)

9) Docker 서비스 상태 확인 
root@docker:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-04-15 11:36:03 KST; 39s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 4393 (dockerd)
      Tasks: 9
     Memory: 38.4M
     CGroup: /system.slice/docker.service
             └─4393 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

 4월 15 11:36:02 docker systemd[1]: Starting Docker Application Container Engine...
 4월 15 11:36:02 docker dockerd[4393]: time="2024-04-15T11:36:02.977896864+09:00" level=info msg="S>
 4월 15 11:36:02 docker dockerd[4393]: time="2024-04-15T11:36:02.979393057+09:00" level=info msg="d>
 4월 15 11:36:03 docker dockerd[4393]: time="2024-04-15T11:36:03.079165847+09:00" level=info msg="L>
 4월 15 11:36:03 docker dockerd[4393]: time="2024-04-15T11:36:03.236355391+09:00" level=info msg="L>
 4월 15 11:36:03 docker dockerd[4393]: time="2024-04-15T11:36:03.261509219+09:00" level=info msg="D>
 4월 15 11:36:03 docker dockerd[4393]: time="2024-04-15T11:36:03.261800646+09:00" level=info msg="D>
 4월 15 11:36:03 docker systemd[1]: Started Docker Application Container Engine.
 4월 15 11:36:03 docker dockerd[4393]: time="2024-04-15T11:36:03.296522068+09:00" level=info msg="A>
root@docker:~# 

root@docker:~# docker version
Client: Docker Engine - Community
 Version:           26.0.1
 API version:       1.45
 Go version:        go1.21.9
 Git commit:        d260a54
 Built:             Thu Apr 11 10:53:25 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.0.1
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.9
  Git commit:       60b9add
  Built:            Thu Apr 11 10:53:25 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.31
  GitCommit:        e377cd56a71523140ca6ae87e30244719194a521
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
root@docker:~#

 

도커를 안 쓰고 쿠버네티스를 쓰냐면 저장할 때 클러스터로 저장하기 때문이다 

(분산해서 저장한다는 뜻인듯) 

 

root@docker:~# docker run -d --name webserver -p 80:80 nginx
앞에 포트번호 80은 Local host port
뒤에 포트번호 80은 Container port 
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
13808c22b207: Pull complete 
6fcdffcd79f0: Pull complete 
fbf231d461b3: Pull complete 
c9590dd9c988: Pull complete 
b4033143d859: Pull complete 
abaefc5fcbde: Pull complete 
bcef83155b8b: Pull complete 
Digest: sha256:9ff236ed47fe39cf1f0acf349d0e5137f8b8a6fd0b46e5117a401010e56222e1
Status: Downloaded newer image for nginx:latest
ec6383b6f48dc804f339dd8706682f4486d03bd02cc77436f5930cbacab4d6d7
root@docker:~#

 

 

https://hub.docker.com/ 

 

Docker Hub Container Image Library | App Containerization

Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.

hub.docker.com

 

회원가입 후 Xshell인 Docker로 가서 

#docker login 
Username: covaltvlue
PW: 

 

 

일반유저가 쓰는건 Containter 

#docker images 

 

#docker ps 

 

지금은 현재 

 

IP 주소 확인 가능 
root@docker:~# docker inspect webserver

 

root@docker:~# curl 172.17.0.2

 

VirtualBox Firefox 

 

 

 

#docker ps
#docker exec -it webserver /bin/bash
#ls
#cd /usr/share/nginx/html
#ls
인덱스 페이지 뜸

#cat index.html
홈페이지 소스가 뜬다 

#ls
#echo "MY Homepage" > index.html
my homepage로 바꾸겠다 

#cat으로 치면 열림 

 

 

 

다시 나오려면 #exit

 

 

컨테이너 삭제 

#docker rm -f webserver → 컨테이너 삭제 
#docker ps → 컨테이너 실행 상태 

아까 docker ps 입력했을 때 아래에 적혀있던 컨테이너들이 지운 이후에는 없어짐

 

 

VirtualBox 우분투로 가면 

 

  • 도커는 서버를 죽여버리면 관리자가 개입하여 직접 만들어 줘야함
  • 쿠버네티스는 만약 5개의 서버가 만들어져 있다면 2개의 서버가 죽었을 때 스스로 2개를 생성하여 운영한다 (관리자의 개입이 없다)

Hypervisor: VirtualBox

Guest OS: Ubuntu 

 

가상머신 문제점

이미지 안에 OS가 포함되어 있기 때문에 이미지 용량 커짐

오픈소스 가상화 소프트웨어는 OS 가상화에만 주력

가상머신의 성능 문제가 있다보니 리눅스 "컨테이너"가 나옴 

 

리눅스 컨테이너

컨테이너 안에 가상 공간을 만들지만 실행 파일을 호스트에서 직접 실행

리눅스 커널의 cgroups와 namespaces가 제공하는 기술 

가상화가 아닌 '격리' 

 

도커의 특징 

서버: 호스트와 OS 자원 (시스템 콜)을 보유

호스트OS: 이미지 용량이 크게 줄어듦

Docker 엔진: 이미지에 서버 운영을 위한 프로그램과 라이브러리만 격리해서 설치

어플리케이션 A

 

도커는 이미지 생성배포에 특화 

이미지 저장관리

github와 비슷한 형태로 도커 이미지를 docker.hub.com 

 

도커 이미지 

이미지는 서비스 운영에 필요한 서버 프로그램, 소스 코드, 컴파일된 실행 파일을 묶은 형태 

저장소에 올리고 받는 건 이미지 (push / pull)

왜 올릴까? 내가 저장소에 올려서 동료들이 받고 수정해서 사용해야하기 때문 

Local Hard Disk에 저장된다 

 

도커 컨테이너

컨테이너는 이미지를 실행한 상태 

컨테이너: 프로세스?

이미지로 여러 개의 컨테이너를 만들 수 있다

(붕어빵 틀 기계로 웹서버를 여러 개 만들 수 있다)

 

클라우드 환경

가상서버를..?

 

도커를 우분투 리눅스에 설치함 

 

 

도커 이미지와 컨테이너 차이점 

 

Traditonal Virtualized Containter Kubernetes
       

 

 

 

도커 이미지와 컨테이너 

이미지와 컨테이너는 도커에서 사용하는 가장 기본적인 단위

이미지와 컨테이너는 1:N 관계

이미지 (Image)
이미지는 컨테이너를 생상할 때 필요한 요소로 컨테이너의 목적에 맞는 바이너리와 의존성이 설치되어 있음
여러 개의 계층으로 된 바이너리 파일로 존재 
컨테이너 (Container)
호스트와 다른 컨테이너로부터 격리된 시스템 자원과 네트워크를 사용하는 프로세스 이미지는 읽기 전용으로 사용하여 변경사항은 컨테이너 계층에 저장
컨테이너에서 무엇을 하든 이미지는 영향 받지 않음 

 

 

 

아까 컨테이너 삭제했는데 이를 다시 만들 수 있다 

왜냐면 붕어빵 틀 (이미지)가 있기 때문에 

#docker images
#docker run -d --name webserver -p 80:80 nginx
-p (port)

앞에 포트번호 80은 Local host port
뒤에 포트번호 80은 Container port

#docker run -d --name webserver2 -p 8080:8080 nginx
웹서버 2 포트 번호 다르게 생성
포트 번호 같이하면 중복으로 인해 충돌남 

 

 

 

Docker File →(BUILD)→ Docker Image →(RUN)→ Docker Container 

Image vs Container

Program vs Process

Class vs Instance 

 

Web Server Ngnix or WAS를 Container로 만든다? 

tomcat은 뭐지 

DB MariaDB or Mysql 

 

 

#docker ps 
#docker inspect [CONTAINER ID]

#curl 172.17.0.3 

#docker rm -f [CONTAINER ID] 해당 아이디의 컨테이너 강제 삭제 
#docker rm -f $(docker ps -a -q) 모든 컨테이너를 강제삭제 

#docker rmi nginix:latest 도커 이미지 강제 삭제 

 

OFFICIAL 인증받은 것만 사용할 것 

 

해당 도커 이미지 stop

그리고 rm (remove) 

 

 

root@docker:~# docker run -d --name web -p 80:80 powermvp/httpd:v1.0 
#docker inspect web
#curl [IP 주소] 

 

 

#docker run -d --name web2 -p 8080:8080 powermvp/marvel-collection 
#docker inspect web2 
#curl 172.17.0.3

 

Ubuntu Firefox

 

 

 

 

🐳중요 docker 명령어 정리 

docker ps: 살아있는 컨테이너만 보여줌
docker ps -a: 죽어있는 컨테이너만 보여줌
docker ps -a -q: 죽어있는 컨테이너 포함해서 모든 컨테이너 ID 형태로 보여줌 
docker rm -f $(docker ps -a -q): 모든 컨테이너를 강제삭제 
docker rmi: 컨테이너 이미지 삭제
docker rmi -f $(docker images -q): 모든 컨테이너 이미지 강제 삭제 
docker run (pull + create + start = run), 반대로 docker create (pull) →반드시 docker start를 해줘야한다

docker images: 컨테이너 이미지 정보 보는 명령어

docker instpect: 컨테이너 이미지 및 컨테이너 상세 정보를 볼 때 사용하는 명령어 (현장에서 트러블 슈팅할 때 多 사용)

docker search nginx: nginx 이미지 정보 보여줌 

 

개념정리

  • 컨테이너: 프로세스
  • 컨테이너 이미지: 프로그램
  • 도커는 컨테이너 기반의 오픈 소스 가상화 플랫폼
    • 서버 환경의 복잡한 상황을 아주 많이 해결해주는 플랫폼으로 현재 거의 표준화 돼서 사용 중
    • 복잡한 서버 관리를 컨테이너라는 환경을 가져다 쉽게 구현을 해주는 가상화 플랫폼 

 

이미지를 생성하는 두 가지 방법

  1. docker build -t [이미지 이름] (nginx, tomcat 등 build해서 이미지로 만들어서 사용 예정) 
  2. hub.docker.com에서 이미지를 다운로드 받을 수 있다 

 

컨테이너 안으로 들어가기 위한 명령어

docker exec -it [컨테이너 이름] /bin/bash

docker exec -it [컨테이너 이름] bash 

 


결론
컨테이너 이미지를 가지고 컨테이너를 만들어 사용할 수 있다. 이때 사용하는 명령어는 'run'
우리가 현장에서 사용하는 것은 컨테이너 이미지가 아닌 '컨테이너'이다

 

 


 

💡실습 

02. Docker 명령어 [Ubuntu 20.04].pdf
0.68MB

 

 

1. Docker 엔진 버전 확인

2. Docker Run: 컨테이너 생성 및 실행 

3. ls 명령어로 컨테이너 내부 확인 

4. Docker 컨테이너 빠져나오기 

- Docker 컨테이너 나오는 방법 2가지

  • Shell에 exit or Ctrl + D
    • 컨테이너 내부에서 빠져나오면서 동시에 컨테이너 정지 
  • Ctrl + P, Q 입력
    • 단순히 컨테이너의 셸에서만 빠져나오기 때문에 컨테이너 어플리케이션을 개발하는 목적으로 컨테이너를 사용할 때 이 방법을 많이 사용 

 

#docker -v
#docker run -i -t ubuntu:20.04
#ls
#exit

 

- Docker run 명령어는 컨테이너 생성 및 실행

- ubuntu 20.04 이미지가 로컬 도커 엔진에 존재하지 않으므로 도커 중앙 이미지 저장소인 도커 허브에서 자동으로 이미지를 내려받음

- 현재 컨테이너 내부로 들어온 상태 (호스트 네임변경)

> 호스트네임은 무작위의 16 진수 해시값

> -i 옵션 : 상호 입출력 설정

> -t 옵션 : tty 를 활성화하여 배시(bash) 셸을 사용하도록 컨테이너 설정 

> 위 두가지 옵션을 하나라도 사용하지 않으면 정상적으로 셸사용 불가 

 

 

5. Docker pull로 Image 내려받기 

#docker pull centos:8 

- docker pull 명령어는 도커 이미지만 다운로드 한다.

- docker run 은 이미지 다운로드 및 실행까지 동시에 한다.

 

#docker images 

- docker images 명령어를 통해 다운로드 한 docker image 들을 확인한다.

 

 

6. docker create 명령어로 컨테이너 생성 

- 컨테이너를 생성할 때는 run 명령어가 아닌 create 명령어를 사용할 수도 있다.

  --name 옵션에는 컨테이너의 이름을 설정

 

- create 명령어의 결과로 출력된 무작위의 16 진수 해시값은 컨테이너의 고유 ID 

  너무길어 일반적으로 12 자리만 사용

  docker inspect 명령어로 컨테이너의 ID를 다시 확인가능

 

 

 

#docker inspect mycentos
#docker inspect mycentos | grep id 

 

 

7. docker start 컨테이너 시작 

- docker start 명령어로 만들어 놓은 컨테이너 실행 

 

 

8. docker attach 컨테이너 내부로 들어가기

- docker attach 명령어로 실행중인 컨테이너 shell 접속

 

 

9. Docker 컨테이너 목록 확인 

#docker ps
#docker ps -a 

- docker ps : 정지되지 않은 컨테이너 목록을 보여줌

- docker ps -a : 정지된 컨테이너를 포함한 모든 컨테이너 출력

- 컨테이너 상태는 STATUS 항목에서 확인

> Exited : 정지된 상태

> Up .. seconds : 실행 중인 상태 

 

 

9.1 Docker ps 출력 결과 설정 

# docker ps --format "table {{.ID}}\t{{.Status}}\t{{.Image}}"

- ps 명령어의 출력 결과가 줄바꿈되어 알아보기 힘들 때는

-- format 옵션에 {{.ID}}\t{{.Status}}와 같은 Go 템플릿을 입력해서 원하는 정보만 출력 가능

 

 

10. Docker Container 이름 바꾸기

#docker rename [기존이름] [바꿀이름]
root@docker:~# docker rename mycentos my_centos

- 컨테이너의 이름은 중복될 수는 없지만 rename 명령어로 바꿀 수 있다

 

 

11. Docker container 삭제

#docker rm [컨테이너 이름] 
root@docker:~# docker rm my_centos

- 더 이상 사용하지 않는 컨테이너를 삭제할 때는 docker rm 명령어를 사용

- 한 번 삭제한 컨테이너는 복구할 수 없으므로 신중히 삭제

 

- 실행중인 컨테이너는 삭제가 불가능

- 컨테이너 stop 후, 삭제

 

#docker stop web2
#docker rm -f web2 

- 실행중인 컨테이너를 강제 삭제 하기 위해서, -f 옵션을 부여

 

#docker container prune 

- 실행중이지 않은 모든 컨테이너를 삭제하려면 docker container prune 명령어를 사용

 

# docker ps -a -q
# docker stop $(docker ps -a -q) 
# docker rm $(docker ps -a -q)
  • docker ps
    • -a 옵션은 컨테이너 상태와 관계 없이 모든 컨테이너를 출력
    • -q 옵션은 컨테이너 ID 만 출력
  • 이 두가지 옵션들을 사용해 출력된 컨테이너 리스트를 변수로 컨테이너를 삭제하면 모든 컨테이너를 간단히 삭제

 

🐳요약 정리

1. docker run 명령어는 pull, create, start 명령어를 일괄적으로 실행한 후 attach 가 가능한 컨테이너라면 컨테이너 내부까지 들어감.

2. docker create 명령어는 도커 이미지를 pull 한 뒤에 컨테이너를 생성만 할 뿐 start, attach 를 실행하지 않음.

3. 보통은 컨테이너를 생성함과 동시에 시작하기 때문에 run 명령어를 더 많이 사용

4. 실행중인 컨테이너는 별도의 옵션없이 삭제 불가능 ( f 옵션으로 가능)

 

 

 

'☁︎클라우드 > 일자별' 카테고리의 다른 글

240417 DAY 70  (0) 2024.04.21
240416 DAY 69  (0) 2024.04.21
240412 DAY 67  (0) 2024.04.15
240411 DAY 66  (0) 2024.04.15
240321 DAY 51~65 : Project I - 기술보고서 1  (0) 2024.04.15