[Reference] Docker 기본
Docker 설치
설치 오류
- 모두가 그런것은 아니겠지만 본인은 설치 시 해당 오류가 발생했다.
- 검색해보니 windows 기능 켜기/끄기에서
Hyper-V
를 켜야하는데, 설치할 수 없다고 비활성화 되어있었다. - 우선 혹시 몰라서 WSL(Windows SubSystem Linux)를 설치해 주었고, 작업 관리자에서 확인해보니 다음에 해당 하는 부분이 비활성화 되어있었다.
- BIOS로 접속해서 가상화 부분을 활성화 해줘야 한다.
- BIOS 고급 설정
- CPU 설정
- 가상화 설정 Disabled -> Enable
작업을 완료하고 다시 보면 활성화가 정상적으로 되어있고, 오류도 뜨지 않는다.
기본 예제 및 코드
해당 글은 생활코딩 내용을 참고하였다.
생활코딩 유튜브
- docker 기본 프로세스
- docker hub에서 image를 pull로 받고
- 받은 image를 run으로 실행하면 container가 되어 실행되게 된다.
docker hub - https://hub.docker.com/
explore로 들어가면 image를 볼 수 있고, 다운받을 수 있다.
pull 예제
Apache web server는 docker hub에서 httpd
라는 이름으로 되어있고, 검색해서 들어가면 pull할 수 있다.
- 받은 image 확인 :
docker images
run 예제
docker run [OPTIONS] IMAGE [COMMAND] [ARG..]
- 컨테이너 이름을 ws1으로 입력
- 컨테이너 확인 :
docker ps
컨테이너 종료
docker stop [OPTIONS] CONTAINER [CONTAINER..]
- stop으로 컨테이너가 삭제된 것은 아니다.
- 다시 실행시키려면
docker start
명령어를 사용하면 된다. - 로그를 확인하고 싶다면
docker logs CONTAINER
명령어를 사용하면 된다.- 실시간 로그를 확인하고 싶다면
docker logs -f CONTAINER
명령어 사용
- 실시간 로그를 확인하고 싶다면
rm 예제
컨테이너 삭제 명령어
docker rm [OPTIONS] CONTAINER [CONTAINER..]
image 삭제는 rmi 명령어 사용
docker rmi [OPTIONS] IMAGE [IMAGES..]
네트워크 설정
- File System : 웹 페이지 데이터가 저장된 공간
- 웹 서버가 Container에 설치된다.
- Container가 설치된 운영체제를 Docker Host라고 한다.
- 둘 다 독립적인 실행환경이기 때문에 각자 독립적인 port와 file system을 가지고 있다.
- 따라서 Host와 Container의 port를 연결해 줘야 한다.
- 이 과정을 port forwarding이라 한다.
명령어 실행
주소를 통해 컨테이너에 접속하면, 컨테이너 안에 있는 WS가 index.html 파일을 읽어서 출력해주었다.
컨테이너 안으로 들어가서 필요한 기능이 동작하도록 수정해야 한다.
docker exec [OPTIONS] CONTAINER COMMAND [ARG..]
- 컨테이너와 지속적으로 연결을 유지하면서 명령어 입력
sh
프로그램은 사용자가 입력한 명령어를sh
프로그램이 받아서 운영체제에 전달해주는 역할을 한다.sh
는 기능이 많이 부족하기 때문에bash
를 많이 사용한다.
index.html
파일이 위치해 있는 곳으로 이동해서 파일을 검색해보면index.html
을 찾을 수 있다.- 하지만 컨테이너에는 파일을 수정할 수 있는 에디터가 설치되어 있지 않기 때문에 따로 설치해 주어야 한다.(용량 문제)
Nono 에디터 설치 명령어
apt update
: apt를 최신 버전으로 업데이트apt install nano
nono index.html
: index.html을 nano 에디터로 열기
댓글남기기