#docker rm -f $(docker ps -a -q)
#docker rmi -f $(docker images -q)
이미지와 컨테이너를 한번에 지우는 명령어
*nginx 이미지로 컨테이너 생성 이름은 mynginx 포트 설정(8080:80)
볼륨 생성 후 마운트 지점 확인
- 볼륨 생성 (myvol)
- 생성된 볼륨 확인 ( myvol )
*마운트 확인
#docker container inspect mynginx | grep Mount -A 10
마운트 확인
- 생성된 볼륨의 정보를 자세하게 확인 ( mount 지점 확인 )
*빠져나와서 컨테이너를 중지/삭제를 해도 마운트된 /www 데이터는 보존이됨.
바인드 후 컨테이너에 접속해서 확인
- 생성된 컨테이너로 접속 ( docker exec -i -t, /bin/bash )
- 컨테이너로 접속해서 마운트 지점 확인
- 내용 확인 ( 접속하기 전에 mount soure의 index.html의 내용과 동일 )
- 정지 후 에도 볼륨 내용 보존

-네트워크 드라이버
*도커는 가상 네트워크(SDN) 를 사용
도커 네트워크 (host)
- 도커 네트워크 리스트 확인 ( docker network ls )
- --rm 옵션 : 1회성 컨테이너 생성
- busybox이미지를 이용하여 컨테이너 내의 네트워크 인터페이스와 IP 주소 정보를 보여줌 ( 기본 )
- busybox 이미지를 사용하여 컨테이너를 호스트 네트워크 모드로 실행 ( 추가, busybox 컨테이너가 호스트의 네트워크 네임스페이스를 공유하게 되어 호스트와 동일한 네트워크 환경을 가짐 )
none
- busybox 컨테이너는 네트워크를 가지지 않은 상태로 실행 ( 지우고 만들기, 네트워크 인터페이스와 IP 주소 정보가 표시되지 않을 것 )
nginx 이미지의 네트워크 확인 ( inspect )
- docker network inspect bridge
- docker network inspect host
- docker network inspect none
컨테이너의 포트번호 확인
- 호스트 포트( 빈 값 )와 컨테이너 포트(80)으로 지정
- 호스트 포트와 컨테이너 포트를 빈 값으로 지정 ( 포트번호 80으로 자동 지정 )
- 생성된 컨테이너 포트 번호 확인
-이미 생성되어 동작하고 있는 컨테이너에 포트 할당은?
-이미지 다운(nginx) ⇒ 컨테이너 생각(이름은 webser) ⇒ 동작(start) ⇒ ps
이미 생성되어 동작하고 있는 컨테이너 포트 할당 (commit)
- 이미지 다운로드
- 컨테이너 동작 (이름: webser)
- 컨테이너 동작 멈추고,
- 이미지를 복사 ( 포트 번호를 추가하고자 하는 컨테이너의 이미지, docker commit )
- 이미지 확인 후
- 포트 번호를 추가하여 컨테이너 생성 ( 이미지는 복사한 이미지 )
*vi /etc/resolv.con ⇒ nameserver 8.8.8.8
#docker container run -d --dns 8.8.8.8 nginx ⇒ 컨테이너에 DNS 설정
컨테이너 dns 설정
- 컨테이너의 dns를 8.8.8.8으로 지정
#docker container run -it --add-host www.test.com:192.168.10.10 cento
컨테이너 호스트 추가 ( 192.168.10.10 )
- --add-host 옵션을 사용하여 www.test.com 호스트를 192.168.10.10 IP 주소로 매핑 ( -it 옵션을 사용하여 상호작용 가능한 쉘을 가진 컨테이너를 실행 )
- ip addr을 통해 확인
*rocky9와 docker1 연결 확인





*컨테이너 생성 과 생성된 브릿지에 연결
컨테이너를 생성하면서 네트워크 지정
- 네트워크 지정하면서 컨테이너 생성 ( --network=mynet 옵션을 통해 컨테이너 생성 )
- ip addr로 확인
네트워크 삭제


네트워크 리스트 확인 ( --filter 옵션 , --no-trunc: ID만 )

네트워크(브릿지) 생성 후 확인





#docker network inspect br0
inspect로 생성한 네트워크 확인 (자세하게, inspect)
- docker network inspect br0
- docker network inspect br1
- docker network inspect br2
컨테이너 생성 후 네트워크 연결 후 해제
- 컨테이너 생성
- 네트워크 연결 ( br1과 webtest, docker network connect )
- 네트워크 연결 해제 ( docker network disconnect )
컨테이너 생성하면서 네트워크 연결 후 해제
- 컨테이너 생성하면서 네트워크 연결
- docker attach로 접속 가능
- 컨테이너 접속 ( docker exec -it, /bin/bash )
- 컨테이너 연결 해제
*네트워크 삭제
docker network 삭제
- 네트워크 삭제 ( docker network rm )
- 삭제후 네트워크 리스트 확인
- 네트워크가 컨테이너와 연결이 되어있으면 연결 해제 후 삭제 ( 컨테이너 중지 후 삭제도 가능 )
-컨테이너 운용
*컨테이너에 접속(연결) 방법 2가지
*컨테이너 삭제시 반드시 stop 후삭제를 권장함 강제 삭제( -f ) 하면 이미지 손상될
수 있음
도커 컨테이너 접속
- 도커 컨테이너 생성
- 도커 접속 ( docker attach를 이용해서 )
- 도커 접속 ( docker exec -it )
- 컨테이너 접속을 할 때는 컨테이너 동작을 시킨 후에
*컨테이너에 프로세스 수행해보기
*다시 exec 방법으로 접속 후 pwd , id , hostname, top, ps 등을 해보면 안되는 명령어 도 있음(별도 설치해야 사용가능)
-모두 삭제
도커 컨테이너 프로세스 확인
- 도커 컨테이너 생성
- 컨테이너로 접속 후에
- ps와 top 패키지 설치 후 (procps)
- top 실행
- ps 실행
*컨테이너의 실시간 프로세스 확인
*매핑된 포트 확인
*컨테이너 이름 변경
컨테이너 모니터링
- 컨테이너 생성
- top 명령어를 통해 컨테이너 확인 ( aux옵션 : 전체로 보여주는 것 )
포트번호 확인
- 도커 포트 번호 확인 (docker port)
컨테이너 이름 변경
- 이름 변경 ( docker rename )
- 변경이 안될 때 컨테이너 중지 후 변경
*컨테이너에서 호스트로 파일 복사
-중지된 컨테이너에서 파일을 가져 올 수 있을까? yes
-중지된 컨테이너로 파일 복사 해서 넣어보기도 가능.
컨테이너 하나 더 생성 후 ( 복사해서 )
- 컨테이너의 파일을 rocky9의 /tmp/nginx.conf 에 복사 ( new-mysol: )
- 복사된 파일 확인 (/tmp)
- 반대로 rocky9의 파일을 컨테이너의 폴더에 복사 (new-mysol:, 경로:/etc/nginx/)
- 컨테이너 중지 후 파일 가져오기와 복사해서 넣기 가능 가능
*컨테이너 로그 확인
-로그파일 자세하게 확인
#docker container inspect --format="{{.LogPath}}" mytestsol
#cat /var/lib/docker/containers/bc75f/bc75f67-json.log
컨테이너 로그 확인
- 컨테이너 로그 확인 ( docker logs, -n 옵션은 줄 갯수 )
- 옵션 -t 는 시간 확인
컨테이너 자세한 로그 확인
- curl http://172.17.0.2:80 으로 컨테이너 접속한 후에
- docker container inspect --format="{{.LogPath}}" new-mysol로 new-mysol log경로 확인
- cat /var/lib/docker/containers/0bc987bc/-json.log로 로그 확인