220504 Today I Learned
일지
휴 드디어 지옥같았던 4월이 끝났다
굿-배드-굿-굿-배드 였는데
과연 다음엔 굿일까 배드일까
휴일이다
열심히하자
목금 이틀동안 도커조져야지
주요 키워드
Docker Command
오늘의 할일
- 220504 TIL 작성
- Docker 복습
- 정보공유 스터디
공부 정리
Docker 명령어
- 도커 파일 복사
- 컨테이너 -> 호스트
- docker container cp 컨테이너명:PATH 호스트 PATH
- 호스트 -> 컨테이너
- docker container cp 호스트_PATH 컨테이너명:PATH
- 컨테이너 -> 호스트
- 컨테이너 파일 변경 현황
- docker diff 컨테이너명
- 도커 볼륨
- bind-mount
- docker run [옵션] -v 호스트_PATH:컨테이너_PATH 컨테이너명
- volume 생성
- docker volume create 볼륨명
- ls /var/lib/docker/volume/볼륨명/_data
- volume 마운트
- docker run [옵션] 볼륨명:컨테이너_PATH 컨테이너명
- volume 리스트 확인
- docker volume ls
- bind-mount
실습 진행사항
실습
도커 설치 상태로 스냅샷
centos httpd ubuntu mysql:5.7 이미지 다운로드
docker pull centos:7
docker pull httpd
docker pull ubuntu
docker pull mysql:5.7
이미지 httpd ubuntu 백업해볼 것
httpd ubuntu 이미지 삭제 후에 백업파일 해제
63 docker save -o t.tar httpd:latest ubuntu:latest
64 docker image rm httpd:latest ubuntu:latest
65 docker images
66 docker load -i t.tar
67 docker images
centos httpd ubuntu mysql:5.7 이미지로 컨테이너 실행(os 컨테이너는 백그라운드로 실행만 되도록 하시오.)
컨테이너명 os1 web1 web2 os2 mydb 순으로 컨테이너 실행
컨테이너 리스트 확인
68 docker run -itd --name os1 centos:7
69 docker run -d --name web1 httpd:latest
70 docker run -d --name web2 httpd:latest
71 docker run -itd --name os2 ubuntu:latest
72 docker run -d --name mydb mysql:5.7
73 docker ps -a
74 docker run -d --name mydb1 -e MYSQL_ROOT_PASSWORD=dkagh1. mysql:5.7
75 docker ps -a
os1 컨테이너 종료 및 실행
76 docker stop os1
77 docker ps -a
78 docker start os1
79 docker ps -a
web1, web2 IP 주소 확인
80 docker inspect web1 | grep IPA
81 docker inspect web2 | grep IPA
mydb WorkingDir 위치 확인
82 docker inspect mydb1 | grep -A 4 WorkingDir
mydb 컨테이너 삭제
83 docker rm -f mydb*
84 docker rm mydb
85 docker rm mydb1
86 docker rm -f mydb1
docker ps -a
ubuntu 이미지로 os3 컨테이너 실행( cpu 사용률 : 40%로 제한, 메모리 : 512m 으로 제한)
87 docker run -itd --name os3 --memory 512m --cpus 0.4 ubuntu:latest
88 docker stats --no-stream
os3 컨테이너 리소스 수정 (메모리 : 1024m)
89 docker update --memory 1024m os3
90 docker stats --no-stream
web1로 시작하는 위치를 분리모드로 출력해보시오.
91 docker exec web1 pwd
os1에 재접속해보시오.
92 docker exec -it os1 bash
------------------------------------------------------------------------------------
볼륨 실습
모든 컨테이너 삭제
docker rm -f $(docker ps -qa)
호스트 디렉토리에
httpd 이미지로 web1, web2, web3, web4 컨테이너 생성
web1 : curl ip주소 실행시 => "docker cp test" 메세지 출력 - cp 명령어 이용
web2 : curl ip주소 실행시 => "docker bind mount test" 메세지 출력 - bind mount 이용
web3 : curl ip주소 실행시 => "docker volume test" 메세지 출력 되도록 - docker volume 이용
web4 : curl ip주소 실행시 => "docker volume test" 메세지 출력 되도록 - docker volume 이용(docker volume create
253 echo docker cp test> test
256 mkdir web_dir
257 echo docker bind mount test> web_dir/index.html
258 docker volume rm vol1 vol2 vol3 vol4
259 docker volume create vol1
260 echo docker volume test1 /var/lib/docker/volumes/vol1/_data/index.html
261 echo docker volume test2 > /var/lib/docker/volumes/vol1/_data/index.html
263 docker run -d --name web1 httpd:latest
264 docker cp /root/test web1:/usr/local/apache2/htdocs/index.html
265 docker run -d --name web2 -v /root/web_dir/:/usr/local/apache2/htdocs/ httpd:latest
266 docker run -d --name web3 -v vol2:/usr/local/apache2/htdocs/ httpd:latest
267 docker run -d --name web4 -v vol1:/usr/local/apache2/htdocs/ httpd:latest
268 echo docker volume test1 > /var/lib/docker/volumes/vol2/_data/index.html
270 docker inspect web1 | grep IPA
271 docker inspect web2 | grep IPA
272 docker inspect web3 | grep IPA
273 docker inspect web4 | grep IPA
275 curl 172.17.0.2
276 curl 172.17.0.3
277 curl 172.17.0.4
278 curl 172.17.0.5확인하되 실시간이 아니도록 하시오.
226 docker stats --no-stream
ubuntu에 분리모드로 접속해서 /var/log/의 내용을 보도록 하시오.
227 docker exec -it os1 bash
# ls /var/log
or
docker exec os1 ls /var/log
web3 컨테이너를 생성
web3 의 웹페이지 내용 확인
curl web3의 IP주소
228 docker run -d --name web3 httpd:latest
229 docker inspect web3 | grep IPA
230 curl 172.17.0.8
Leave a comment