기존: 이미지 1을 지운다 하더라도 이미지 2에서 레이어 A, B, C를 사용하고 있기 때문에 지워지지 않음
레이어 개념 도입: 이미 존재하는 레이어 A, B는 새로 다운로드 받을 필요가 없음
도커 이미지 정보 확인
sudo docker pull nginx
sudo docker inspect nginx
Bash
복사
도커 이미지 저장소 위치 확인
sudo docker info
sudo -i
cd /var/lib/docker/overlay2
Bash
복사
레이어 저장소 확인
root@server1-VirtualBox:/var/lib/docker/overlay2# ls
0cc29ea5605872d9c8291673064e85b07160203fbf04b34eeeed899731361960 # 레이어 변경 사항 저장
615767e7221dbc99b8e441e35a88df5d74c911f2674ceaa28001388535e95be2 # 레이어 변경 사항 저장
9f3bb671f38d7f61f661af369d420cdedb195e4d623bdb6ba8e3b045f72e8d69 # 레이어 변경 사항 저장
l # 원본 레이어 저장
Bash
복사
도커 용량 확인하기
du -sh /var/lib/docker/ #도커가 설치된 환경 용량 확인
2.0G /var/lib/docker/
du -sh /var/lib/docker/image/ # 도커 이미지에 대한 정보 저장 디렉토리
2.7M /var/lib/docker/image/
du -sh /var/lib/docker/overlay2/ # 도커 이미지의 파일 시스템이 사용되는 실제 디렉토리
2.0G /var/lib/docker/overlay2/
du -sh /var/lib/docker/containers/ # 도커 컨테이너 정보 저장 디렉토리
136K /var/lib/docker/containers
Bash
복사
실습
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runtime.v1.linux runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version:
runc version:
init version:
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.18.0-20-generic
Operating System: Ubuntu 18.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.852GiB
Name: server1-VirtualBox
ID: 637E:FYG4:SFQN:R3UE:I47D:2FPI:XXKP:PB2R:C6VG:GPFA:KWDY:VDNG
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No swap limit support
root@server1-VirtualBox:~# clear
root@server1-VirtualBox:~# cd /var/lib/docker/
root@server1-VirtualBox:/var/lib/docker# ls
buildkit containers image network overlay2 plugins runtimes swarm tmp trust volumes
root@server1-VirtualBox:/var/lib/docker# du -sh image/
3.0M image/
root@server1-VirtualBox:/var/lib/docker# du -sh overlay2/
1.8G overlay2/
root@server1-VirtualBox:/var/lib/docker# du -sh containers/
56K containers/
root@server1-VirtualBox:/var/lib/docker# docker image
Usage: docker image COMMAND
Manage images
Commands:
build Build an image from a Dockerfile
history Show the history of an image
import Import the contents from a tarball to create a filesystem image
inspect Display detailed information on one or more images
load Load an image from a tar archive or STDIN
ls List images
prune Remove unused images
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rm Remove one or more images
save Save one or more images to a tar archive (streamed to STDOUT by default)
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
Run 'docker image COMMAND --help' for more information on a command.
root@server1-VirtualBox:/var/lib/docker# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 5c62e459e087 3 weeks ago 556MB
consol/tomcat-7.0 latest 7c34bafd1150 6 years ago 601MB
root@server1-VirtualBox:/var/lib/docker# docker image
Ruby
복사
Docker 유용한 명령어
포트포워딩으로 톰캣 실행하기
•
80:8080 : 80으로 접속했을때 tomcat의 8080으로 접속하는 방법
sudo docker run -d --name tc -p 80:8080 tomcat
firefox 127.0.0.1:80
Bash
복사
컨테이너 내부 셸 실행
sudo docker exec -it tc /bin/bash
Bash
복사
컨테이너 로그 확인
sudo docker logs tc # stdout, stderr
Bash
복사
호스트 및 컨테이너 간 파일 복사
sudo docker cp <path> <to container>:<path>
sudo docker cp <from container>:<path> <path>
sudo docker cp <from container>:<path> <to container>:<path>
Bash
복사
도커 컨테이너 모두 삭제
sudo docker stop `sudo docker ps -a -q`
sudo docker rm `sudo docker ps -a -q`
Bash
복사
임시 컨테이너 생성
sudo docker run -d -p 80:8080 --rm --name tc tomcat
Bash
복사
도커의 유용한 명령어 실습
root@server1-VirtualBox:/var/lib/docker# docker run -d --name tc -p 80:8080 consol/tomcat-7.0
d3bb91aea095f94f0cc86b85c488f3e49dfd62110f6f1415fb695c9f0bb11f60
root@server1-VirtualBox:/var/lib/docker#
Ruby
복사
root@server1-VirtualBox:/var/lib/docker# echo test1234 > test.txt
root@server1-VirtualBox:/var/lib/docker# cat test.txt
test1234
root@server1-VirtualBox:/var/lib/docker# docker cp test.txt tc:/
root@server1-VirtualBox:/var/lib/docker# docker exec -it tc cat /test.txt
test1234
root@server1-VirtualBox:/var/lib/docker# docker cp tc:/test.txt ./test2.txt
root@server1-VirtualBox:/var/lib/docker# cat test2.txt
test1234
root@server1-VirtualBox:/var/lib/docker# docker cp tc:/test.txt tc:/test2.txt
copying between containers is not supported
root@server1-VirtualBox:/var/lib/docker# 임시컨테이너만들기
임시컨테이너만들기: 명령을 찾을 수 없습니다
root@server1-VirtualBox:/var/lib/docker# docker ps -a -q
d3bb91aea095
root@server1-VirtualBox:/var/lib/docker#
Ruby
복사