# Docker # install $ sudo apt install docker.io $ sudo docker (확인:명령어나옴) # image 검색 Offical , down $ sudo docker search httpd $ sudo docker pull httpd:latest $ sudo docker images (확인:이미지) $ sudo docker inspect https (확인 이미지정보) TAG 확인 ![](https://i.imgur.com/l0XiUho.png) layers 정보 확인 ![](https://i.imgur.com/ZxQHKK7.png) # Inspect 정보확인 $ sudo docker inspect --format="{{ .RepoTags}}" https $ sudo docker inspect --format="{{ .Os}}" https $ sudo docker inspect --format="{{ .RootFS}}" https $ sudo docker inspect --format="{{ .RootFS.Layers}}" https 악이적인 파일 어느정도 확인가능 $ sudo docker image history httpd ![](https://i.imgur.com/QBTUVoh.jpg) # image tag , upload (도커가입후) $ sudo docker image tag httpd linux-httpd:1.0 ![](https://i.imgur.com/E84hGiD.png) # docker login $ sudo docker login ![](https://i.imgur.com/pgrcAcX.png) $ sudo docker push [도커ID]linux-httpd (실패) $ sudo docker image tag linux-httpd:1.0 [도커ID]/httpd:2.0 ![](https://i.imgur.com/x30KoZg.png) $ sudo docker images 확인 $ sudo docker push [도커ID]/httpd:1.0 ![](https://i.imgur.com/SLZwkeh.png) 로그아웃 $ sudo docker logout # 파일로 도커 다운받기 Save Load $ sudo docker image save linux-httpd:1.0 > linux-httpd.tar 파일 확인 ![](https://i.imgur.com/F4PLs0L.png) $ tar xvf linux-httpd.tar 도커 삭제되면 다시 load 로 등록 $ sudo docker rmi linux-httpd:1.0 $ sudo docker image load < linux-httpd.tar ![](https://i.imgur.com/mmhJDMP.png) # docker image 삭제 방법 ![](https://i.imgur.com/ht1WwzZ.png) $ sudo docker image rm (rmi) linux-httpd:3.0 실행중일때는 stop 후 삭제 가능 $ sudo docker image rm web-server:1.0 -f 옵션으로 IMAGE값으로 삭제 $ sudo docker rmi -f (IMAGE값)faed ![](https://i.imgur.com/uhfrU4m.png) # docker run , stop $ sudo docker run -it mysql /bin/bash $ sudo docker ps 동작 확인 ![](https://i.imgur.com/9eTi8Sz.png) $ sudo docker rmi mysql (오류발생) $ sudo docker ps 컨테이너 ID 값 확인 ![](https://i.imgur.com/eKsMxAw.png) $ sudo docker stop 110648d1c5c9 $ sudo docker ps (프로세스 확인) ![](https://i.imgur.com/cDrGinY.png) $ sudo docker rmi -f [mysql Image ID 값] Image 전부 삭제 $ sudo docker prune -a # docker webserver 생성 및 배포 $ sudo docker pull nginx ![](https://i.imgur.com/twal5n3.png) -it(터미널) --name(이름) -d(뒤에다) -p(백그라운드형식으로 실행) 8000:80(포트포워딩) nginx:latest(nginx 최신버전) $ sudo docker run -it --name nginx_web -d -p 8000:80 nginx:latest ![](https://i.imgur.com/Se1NkpW.png) -d 옵션안쓰면 다운받고 실행되는것 까지 보임 $ sudo docker ps (nginx web server 확인) ![](https://i.imgur.com/7JSon1W.png) 8000번 포트 실행 확인 ![](https://i.imgur.com/X0td5b2.png) 포트지정을 안하면 docker 내부의 포트로 생성된다 내부포트 확인 $ sudo docker inspect (Container ID) ![](https://i.imgur.com/7mMXP7L.png) 172.17.0.2 ![](https://i.imgur.com/xH90ZwU.png) 무선AP에 포트포워딩 하면 외부에도 가능 $ sudo vim index.html ![](https://i.imgur.com/VTF4gig.png) 확인 ![](https://i.imgur.com/ZEaFuyz.png) index 파일 복사 $ sudo docker cp index.html nginx_web:/usr/share/nginx/html/index.html 확인 ![](https://i.imgur.com/fNIcX3m.png) 다른버전으로 nginx 실행 $ sudo docker run -it --name nginx_web -d -p 8001:80 nginx:latest 확인 $ sudo docker ps ![](https://i.imgur.com/CUswgGh.png) $ sudo docker stop nginx_web 확인 $ sudo docker ps ![](https://i.imgur.com/SIkhq93.png) 프로세스를 다보자 -a $ sudo docker ps -a 확인 ![](https://i.imgur.com/DqR57Mx.png) $ sudo docker start nginx_web $ sudo docker restart nginx_web 재시작 확인 $ sudo docker ps ![](https://i.imgur.com/8Oo7bNN.png) 도커 프로세스 확인 $ sudo ps -ef | grep docker 정보 확인 ![](https://i.imgur.com/cdujWCu.jpg) 부모 1프로세스가 자식 205605 프로세스로 동작중이다 ![](https://i.imgur.com/iA3aPeg.png) 자식 프로세스 확인 $ sudo su - (관리자로그인) $ cd /proc/ & ls -al 폴더 별로 프로세스 확인가능 ![](https://i.imgur.com/QmX8gvP.jpg) $ cd 205605 $ ls -al 도커 프로세스 폴더로 확인 CWD 는 이경로를 통해 서비스 ![](https://i.imgur.com/u6TD8ou.png) ![](https://i.imgur.com/yV08sGh.png) # 도커(docker) 컨테이너 파이썬 환경 활용하여 코드 실행하기 https://www.youtube.com/watch?v=u0zEag3pmv0&list=PL1jdJcP6uQtvfNf19anO9YJqe-B4nGuAu&index=8 https://www.youtube.com/watch?v=bldCyEmwOU0&list=PL1jdJcP6uQtvfNf19anO9YJqe-B4nGuAu&index=1