2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

Docker & Container basic

2022. 10. 18. 22:27ㆍSK Rookies 9/review&practice

설치

#인터넷이 안된다?
sudo dhclient

#도커 컨테이너 환경 설치
sudo apt update
sudo apt install docker.io

#네트워크 할당 보기
ifconfig

#잘 깔렸는지 확인
sudo docker version

도커 네트워크 할당됨

도커 네트워크가 할당되지 않았을 시 - 재시작 해보기

sudo service docker stop
sudo service docker start

 

제대로 설치된 모습

https://hub.docker.com/ 에서 다양한 이미지들을 볼 수 있다.

도커 실행

#다운받고자 하는 이미지 검색
#OFFICIAL이 OK된 것이 안전한 이미지다.(백도어같은 악성코드가 담긴 이미지가 있을 수 있음)
sudo docker search nginx

#찾은 후 다운로드 및 확인
sudo docker pull nginx
sudo docker images

#이미지 실행 및 확인
#run = pull(다운 안받았으면) + create + start
#itd : 컨테이너가 백그라운드로 작동하고, 표준 입력 터미널이 열린 상태가 된다. 컨테이너가 계속 유지된다.
sudo docker run -itd -p 8888:80 --name=webapp nginx
sudo docker ps

이미지를 다운받을 때, Layer라는 단어를 볼 수 있는데, 그 이유는 이미지가 레이어 형식으로 되어있기 때문이다.

후에 예를들어 버전을 업그레이드 하고 싶은 부분이 있으면 그 부분에 해당되는 레이어만 업그레이드 된 레이어로 갈아끼고 새로 이미지를 만들어서 사용하면 된다.

이미지 레이어
이미지 서칭
이미지 다운
이미지 실행
정상 동작

 

#docker image 용량 확인
# -v : --verbose. 공간 사용에 대한 상세 정보 표시
docker system df -v

이미지의 용량이 가상머신을 이용한 용량과 매우 큰 차이가 있다는 것을 볼 수 있다. -> 경량화

용량

도커 지우기

#실행중인 컨테이너 멈추기
sudo docker stop Container_Name
#컨테이너 지우기 id의 경우 일부분만 적어도 된다.
sudo docker rm ContainerID
#실행 + 멈춤 컨테이너 전부 보기
sudo docker ps -a

과정

도커 로그

#관리자 터미널 접속(유저명이 없을경우 root계정)
sudo su - 유저명
#로그가 있는 경로
cd /var/lib/docker/containers/ContainerID
ls
sudo vi file or cat file

로그 정보

서버 소프트웨어 문제를 검색하는 취약점 스캐너 nikto

#도커로 띄운 nginx 서버의 취약점을 검색
sudo nikto -h http://192.168.5.129:8888/

취약점 스캔

도커 이미지 만들기

#기본적인 웹 사이트 만들기
#<h1>Test Page</h1>
sudo docker cp index.html webapp:/usr/share/nginx/html/index.html

#변경사항을 보여줌
#A : add, C : change
sudo docker diff webapp

#sudo docker commit -a "도커허브 아이디" 이미지 생성 할 컨테이너 이름 이미지 이름:태그
#태그가 붙었을 시 각종 명령어에 이미지:태그 형식을 지켜야함
sudo docker commit -a "아이디" webapp webapp:1.0

#로그인 및 업로드
sudo docker login
#도커허브 등록할 경로 지정
sudo docker tag webapp:1.0 아이디/webapp:1.0
sudo docker push 아이디/webapp:1.0

#업로드한 이미지 다운받기
sudo docker pull 아이디/webapp:1.0

변화
정상적으로 들어감
도커 허브에 등록
도커허브
이미지 다운

#프로세스 상태를 보듯 도커 상태를 보는 명령어 - 이름이 없을 경우 전부 다 나옴
sudo docker stats 실행중인 컨테이너 이름

현재 실행중인 컨테이너 상태

 

'SK Rookies 9 > review&practice' 카테고리의 다른 글

도커 환경 취약점  (0) 2022.10.21
도커 파일, 컴포즈  (0) 2022.10.20
#포트포워딩을 통한 VM 외부 통신#  (0) 2022.10.19
WebHack Review&Practice Advanced  (0) 2022.10.18
WebHack Review&Practice basic  (0) 2022.10.18