df -h 명령어는 위와같은 정보를 준다.
가장먼저
sudo apt-get update 명령어를 사용하여 udpate를 해준다.
다운받아야 할 패키지 목록
1. sudo apt install apt-transport-https
2. sudo apt install ca-certificates
3. sudo apt install curl
4. sudo apt install software-properties-common
curl : 특정 웹 사이트에서 파일을 다운로드 받을때 사용한다.
도커 다운로드
1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
2. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
위의 명령어를 입력하면 apt 리스트에 도커를 다운받을 수 있는 경로가 추가 된다.
3. apt-cache policy docker-ce
4. sudo apt install docker-ce
위 명령어를 이용하여 도커를 다운로드 받는다. ( 도커를 다운로드 받으면 자동적으로 systemctl로 등록된다.)
도커를 테스트 해보기 위해 hello-world를 도커에서 가져온다.
도커는 github.com 처럼 dockerhub 사이트가 존재한다.
그곳에서 image를 저장해서 공유하고 다운로드 받을 수 있는데 그 중 hello-world라는 이미지를 다운받아서
도커가 정상적으로 작동하는지 테스트 해볼 수 있다.
docker pull hello-world
docker images 를 이용하여 docker에 존재하는 이미지 목록을 볼 수 있다.
docker run hello-world 를 이용하여 컨테이너를 만들어서 hello-world이미지를 실행해 볼 수 있다.
위의 명령어 하나로 우리 서버위에 별도의 서버가 작동하여 명령을 수행하고 종료된 것을 볼 수 있다.
docker ps -a 명령어를 이용하여 컨테이너 상태 리스트를 확인할 수 있다.
hello-world 컨테이너는 현재 status 에서 사용이 끝난것을 알 수 있다.
docker rm c1d25ba5c260 명령어를 이용하여 CONTAINER ID를 이용하여 삭제할 수 있다.
하지만 컨테이너를 삭제해도 image파일은 남아있는 것을 확인할 수 있다.
docker run hello-world 를 실행하면 언제든지 다시 컨테이너가 만들어지고 실행할 수 있다.
이제는 우리가 직접 Dockerfile을 만들어서 서버를 실행해 보자.
home/ubuntu/example 폴더에 sudo vi Dockerfile을 생성한다.
-y :
apt-get install 할 때 설치확인시 무조건 yes를 선택하도록 설정한다.
EXPOSE 80 :
아파치는 80포트를 사용하기 때문에 포트를 열어준다.
(서버컴퓨터에서 해당 컨테이너에 연결하기 위해서 몇번 포트를 이용할 건지 설정해 줄 수 있다.)
CMD :
컨테이너는 특정 작업을 완료하고 나서 곧바로 종료되기 때문에 기본적으로 apachectl가 항상 구동되는 상태로 만들어 주기 위해 설정한다(데몬 상태로 만들어 준다).
해당 Dockerfile이 있는 곳에서
docker build -t example .
도커파일을 빌드 해 준다.
-t tag이름을 설정해 줄때 사용한다. (위의 경우 tag는 example)
마지막에 example 다음에 오는 ' . ' 은 현재 디렉토리를 알려주는 표시이다.
빌드후 이미지파일 목록을 확인해 보면
'example' 이미지를 만들 때 'ubuntu 18.04' 버전에서 웹 서버가 구동될 수 있도록 Dockerfile을 만들었기 때문에 자동으로 ubuntu 이미지가 생성된 것을 알 수 있다.
생성된 이미지를 구동하기 위해서는
docker run -p {host-port}:{container-port} {tag-name}
- example 이미지는 실제로 구동될때 컨테이너에서 80번 포트가 개방된다.
- 80포트와 aws EC2 서버와 연결하기 위해서 host포트와 container포트를 연결해 주는 설정을 해주어야 한다.
- 위 설정을 통해서 사용자가 host 80포트에 접속을 하면 container의 80포트로 접속할 수 있게 된다.
docker run -p 80:80 example
위와같이 설정을 하면 서버가 구동 되었고
aws 인바운드 규칙을 편집하여 80포트를 모든 ip에 열어주면 접속할 수 있다.
서버ip와 80포트를 입력하여 접속하면 위와같이 성공적으로 접속한 것을 알 수 있다
'Docker' 카테고리의 다른 글
[Docker] AWS RDS를 이용한 데이터베이스 구축 (0) | 2020.11.08 |
---|---|
[Docker] mysql과 php 컨테이너 연동 (0) | 2020.11.08 |
[Docker] AWS EC2에 mysql 컨테이너 설치 및 접속 (0) | 2020.11.08 |
[Docker] AWS EC2에 php 설치 (0) | 2020.11.08 |
AWS EC2 인스턴스에 Jupyter Notebook 설치 (0) | 2020.11.08 |