이미 많은 블로그에서 자세히 나와있어 핵심만 설명 한다
도커는 기본적으로 linux를 지원하기 때문에 MacOS와 Windows에 설치되는
Docker는 가상머신에 설치됨
Windows 는 Hyper-V 라는 것을 사용한다. Windows pro 만 사용 가능 했으나 Windows hompe 버전에서도 WSL2를 이용하여 설치 가능하다.
도커 데스크탑응 설치하면 이런 내용이 뜰것이다. 위에서 언급햇듯이 WSL2를 설치해야 도커가 사용가능해 WSL2를 깔으라는 내용이다.
성공적으로 설치하면 Windwos powershell 이나 cmd(콘솔창) 을 통해 실행 가능하다.
우분투라는 이미지에 태그가 20.04 를 컨테이너로 실행한다는 뜻
run 명령어를 실행하면 사용할 이미지가 저장되어 있는지 먼저 체크한다.
(도커는 이미지로 컨테이너를 만든다) 없으면 다운로드(pull) 한후 컨테이너를 생성한다.
컨테이너 내부에 들어가기 위해 sh를 실행하고 키보드 입력을 위해 -it 옵션을 줍니다.
컨테이너 상태는 실행, 정지, 삭제 가 있다. --rm 옵션이 없다면 컨테이너가 종료되더라도 삭제되지 않고 남아있어 수동으로 삭제 해줘야한다.
도커는 다양한 리눅스 배포판을 실행 할수 있다.
컨테이너안에 있는 쉘 커맨드에 접속
Ubuntu 또는 CentOS에 포함된 다양한 기본기능이 필요 없는 경우, Alpine 이라는 초소형 (5MB) 이미지를 사용할 수도 있습니다
호스트와 컨테이너 연결 포트 즉 내 pc 포트 5678(왼쪽)이 오른쪽 hashicorp 포트 5678 과 연결 된다는 뜻이다.
호스트 5678 로 들어온 요청은 컨테이너의 5678(오른쪽)으로 전달하도록 경로가 설정 되어있다고 보면된다.
curl = 브라우저처럼 http접속해서 결과 받아오는 명령어
Redis라는 메모리기반 데이터 베이스를 실행하는 명령어이다
키, 벨류 형태로 되어 있다.
도커를 이용하면 포트를 다르게해서 redis 여러개 띄울수 있다.
접속 성공 이제는 DB를 만들어보자 . 테이블 만드는 명령어는 기존 MySQL 문법과 같다.
exec = 도커 컨테이너가 떠잇는데 그안에서 무엇인가 하고싶을때/ 다른 컨테이너 접속시
MySQL 2에 MySQL 클라이언트로 접속 완료
images = 말그대로 이미지 리스트를 보여준다
rm = 컨테이너 삭제시 사용된다 . stop 을 먼저하고 rm 으로 삭제를 해준다.
rmi = 이미지 삭제시 사용
도커 컨테이너끼리 이름으로 통신할 수 있는 가상 네트워크를 만드는 명령어 이다.
app-network 라는 이름으로 wordpress와 mysql이 통신할 네트워크를 만든다.
-> 컨테이너에도 데이터 를 저장하고 내 디렉토리에도 데이터를 저장해 놓는 방법이다.
도커는 명령어들이 굉장히 조심스럽다. 띄어쓰기나 글자하나하나가 신경쓰인다.
그걸 편하게 해주는 프로그램이 Compose!!
기존에 복잡하고 조심스러웠던 MySQL이나 워드프레스 명령어보다 훨씬 깔끔한 키 벨류 형태로 정리되었다. 이러면 가독성도 좋아지고 코드 관리도 쉬워진다.
명령어 docker-compose up 을 하게 되면 자동으로 yml 파일을 읽어 MySQL과 워드프레스를 조건에 맞게 만들어 준다.
아.....오류만 보면 침이 고인다. 구글링을 해보자
- compose version이 안맞아서 오류
- indentation (들여쓰기) 오류
이건 MySQL 과 워드프레스 생성시 발견한점인데...
MySQL
워드프레스
-> 간단히 정리하자면 둘다 처음 만들때 오류가 났었다. 그러면 생성이 되지 않아야 하는데 컨테이너 status 를보면 둘다 "created" 이다.(생성이 안되어야 정상인데 created???)
-> 삭제하고 오류가 나지 않도록 작성하면 status 는 "up N second" 라고 나온다. 이 둘의 차이점을 찾아봐야 겠다.