---
# System prepended metadata

title: Docker

---

# 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






