#docker를 실행하기 위한 명령어
docker
docker ps
#(실행중인 컨테이너를 보여주는 커맨드)
docker ps -a
#(실행이 종료된 것을 포함해서 모든 컨테이너를 보는 커맨드 및 옵션)
docker images
#(생성된 혹은 다운로드 된 이미지를 보여주는 커맨드)
docker images -a
#(모든 이미지를 보여주는 커맨드 및 옵션)
- 도커 이미지를 생성하기 위한 첫번째 기초(Dockerfile)
FROM python:3
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "example.wsgi:application"]
docker build -t '도커허브에 가입한 계정명'/'이미지명(프로젝트명 권장)':'버전' .
ex) docker build -t wecode/wecodeproject:0.1.0 .
docker run --name '컨테이너 명' -d'데몬으로 실행하기 위한 옵션' -p '호스트 포트':'컨테이너 포트' '이미지명'
ex) docker run --name wecode01 -d -p 8000:8000 wecode/wecodeproject:0.1.0
http -v get localhost:8000/product/all/ sort_by=hot
#docker repository에 push
docker push zoeyul07/project_1st:0.2.0
- 우분투에 도커 설치(EC2서버 접속 후 설치)
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
- sudo docker login 명령어로 로그인 후 pull
#EC2서버에서 pull
sudo docker pull zoeyul07/project_1st:0.2.0
#gunicorn 확인 후
ps -ef | grep python
#kill
kill 25631
#컨테이너 명은 중복되지 않게 한다.
docker run --name '컨테이너 명' -d'데몬으로 실행하기 위한 옵션' -p '호스트 포트':'컨테이너 포트' '이미지명'
ex) docker run --name wecode01 -d -p 8000:8000 wecode/wecodeproject:0.1.0
sudo docker start kakaofriend01
sudo docker stop kakaofriend01
- 빌드된 이미지에 이상이 있을 경우, docker ps -a 명령어로 살펴봤을떄, status가 exited 됐을것이다.
이는 서버가 실행되다 오류가 발생홰서 문제가 되는 경우가 많다. 그렇다면 다음과 같이 실행해서 문제를 확인해 볼 수 있다.
docker run -it wecode/wecodeproject:0.1.0 /bin/bash
#위의 명령어를 실행하면 이미지를 기반으로 바로 컨테이너를 실행하면서 접속한다.
#process 등 여러가지를 살펴보면서 현재 서버에 어떤 문제가 있는지 알 수 있다. 하지만 수정은 컨테이너에서 하는게 아닌 이미지를 다시 빌드 해야한다.
docker rmi $(docker images -q)
#ubuntu
sudo docker rmi $(sudo docker images -q)
docker rm $(docker ps -a -q)
- 우분투에 도커 설치(EC2서버 접속 후 설치)
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
#docker repository에 push
docker push zoeyul07/project_1st:0.2.0
#EC2서버에서 pull
sudo docker pull zoeyul07/project_1st:0.2.0
후에 run