- Docker는 크게 4가지로 구성
Docker client와 serve(docker engine),
Docker image,
Docker registries(docker-hub),
Docker containers
이 그림으로 이해하면 좀 더 수월함.
docker registry에서 image를 pull받아와서 container로 run 시켜도 되고,
dockerfile을 build시켜 image로 만들어 container로 run 시켜도 됨.
그러니까 결국엔 image화 시켜 container로 넣어주고 그걸 관리해주면 되는 것.
<이미지다운>
docker pull {name}
<이미지확인하기>
docker images
<모든 image 목록>
docker images -a
<실행중인 container 목록>
docker ps
<실행종료된것 포함 모든 container 목록>
docker ps -a
<이미지를 컨테이너로>
docker run {image name}
<같은 이미지를 다른 컨테이너로!
docker run --name {name} python:latest (name에 이름 붙여주기)
<컨테이너 스타트>
docker start {container 이름}
<컨테이너 스톱>
docker stop {container 이름}
<컨테이너 삭제 명령: 실행중인 컨테이너는 삭제 no>
docker rm {container name}
<실행중인 컨테이너도 강제 삭제>
docker rm —force {이미지네임}
<이미지 삭제 명령>
docker rmi {이미지네임}
<이미지를 컨테이너에 연결시키되 호스트포트+컨테이너포트 연결 시키는방법>
docker run —name {container 이름} -p 8081:80 httpd
<컨테이너 안으로 들어가서 조작할 수 있게 하는 명령어>
docker exec -it {container 이름} /bin/sh (or bash)
<docker 이미지 만들어주기 명령어>
<eunhye8은 docker user네임, 0.0.0은 tag이름, image의 버전 맨 뒤 쩜까지 소중함>
docker build -t ehye8/hola:0.1.0
<docker 이미지 만들어준거 repo로 push하기>
docker push ehye8/pre2021:0.1.0
<이미지를 컨테이너로 만들기> (뒤에 포트번호 꼭적어주기)
docker run —name pre2021-container -d -p 8000:8000 ehye8/pre2021:0.1.0
<우분투환경(ec2)에서 docker registry 풀 받기>
docker pull ehye8/pre2021:0.1.0
docker images
<pull 된 images들이 나옴>
docker run --name pre2021 -d -p 8000:8000 ehye8/pre2021:0.1.0
<우분투 환경에서 container 동작시킴>
docker build -t ehye8/pre2021:0.1.0 .
<ehye8/pre2021이 image 이름임>
<dockerfile을 이미지로 build>
docker images
docker run --name {container 이름} -p 8000:8000 {image 이름}:0.1.0
<dockr 이미지를 가지고 컨테이너에 넣어서 run 시킴>
여기서부터는 container 동작중 !
이미지가 다 생성이 됐고!
docker exec -it {container 이름 /bin/bash
<이 명령어 치면 각 컨테이너들어가서 shell 칠 수 있음>
docker push ehye8/pre2021:0.1.0
<image된 dockerfile을 docker registry(docker hub)에 push>
<여기서 안될때 docker login해보기>
ssh -i '/Users/eunhyepark/Desktop/mangokeypair.pem' ubuntu@13.209.14.238
<이제 배포를 해야해 ubuntu 접속>
<ec2서버에 들어왔지 이제>
docker pull ehye8/pre2021:0.1.0
<docker registry에서 ehye8/pre2021 image 다운받아주기>
docker images
<이미지 확인해보기 그럼 우분투 ec2서버에 들어와있어 registry에 푸시해놨던 이미지가>
docker run —-n pre2021 -p 8000:8000 ehye8/pre2021:0.1.0
<container 실행시킨것>
sudo docker ps
<컨테이너에서 확인가능>
<이제배포완료!>
🍆 로그인안될때 🍆
sudo usermod -aG docker $USER
newgrp docker
docker login