Desktop setup
-
https://www.docker.com/get-started/. => MAC | Window 용 Docker Desktop 설치 (공식문서에서 Docker Hub에 관한 설명도 있고 설치하라고 하는데, 굳이 설치 안 해도됨.)
-
Terminal | PowerShell 창 => docker —version 명령어로 로컬에 도커 설치 확인.
Docker Images 생성 방법
- https://github.com/eomssy/outsourcing-docker-img => github에 업로드 해둔, docker image file 복사 or download.
- 본인이 원하는 위치에 도커용 폴더 생성.
- 1번에서 다운로드 받았거나 복사해둔 파일을 2번에 생성한 폴더에 붙여넣기. (이때, 파일명은 반드시 Dockerfile 라고 해야만 도커 이미지라고 인식함.)
- 2번 폴더경로에서 docker build -t [원하는 이미지 이름] . —> 입력하면 도커 이미지가 생성됨. EX)docker build -t apm . 라고 명령어를 작성하면 위의 Dockerfile에 저장된 apm 이라는 이름을 가진 도커 이미지가 생성된다.
- 설치관련 로그가 쭉 나오고 설치 완료되면, docker images 명령어를 통해 현재 내 로컬에 있는 이미지 목록을 볼 수 있음
Docker image Container에 올리기 [container 관련 명령어 (도커 이미지 컨테이너에 올리고 실행)]
-
docker images —> 명령어를 통해 본인의 로컬에 존재하는 로컬 이미지 목록을 확인, 여기서 본인이 실행시키고자 하는 docker image 파일의 이름을 확인(REPOSITORY란 확인).
-
1번에서 확인한 이름을 기반으로 도커 이미지를 컨테이너에 올리면 됨. docker run -p 8080:80 -v [본인이 사용하고자 하는 도커 컨테이너 폴더 경로 ]:/var/www/html [도커 이미지 이름] EX) docker run -p 8080:80 -v /Users/eomseung-yeol/Desktop/docker-test:/var/www/html apm —> -p 포트 지정, -v 폴더 연결 (본인의 로컬서버의 8080 포트에 아파치 웹 서버 80번 포트를 인바운드 해준다. 본인이 8080 포트 말고 다른 포트를 사용하고 싶으면, 본인이 사용중인 포트가 아닌 임의의 포트번호를 지정해서 연결할 수 도 있음. 추가로 로컬 폴더 경로를 아파치 메인 경로처럼 사용해서 사용이 가능하다. 폴더 위치만 잘 선정하면 본인 입맛에 맞게 개발가능.)
Container & image 관련 명령어
# image 관련 명령어
docker images # 현재 내 컴퓨터에 만들어둔 도커 이미지 리스트를 확인 하는 명령어.
docker rmi [docker image name] # 만들어둔 도커 이미지를 제거하는 명령어.
docker build -t [만들고자 하는 docker image name] . # 도커 이미지 생성 명령어.
# container 관련 명령어
docker ps -a # 현재 도커 컨테이너에 올라간 리스트를 보여준다
docker ps # 구동중인 컨테이너 리스트를 보여준다.
docker container stop [Container ID] # 구동중인 컨테이너를 중지하는 명령어.
docker rm [Container ID] # 리스트에 올라온 도커 컨테이너를 제거하는 명령어.
sudo docker exec -it [실행중인 컨테이너 ID] /bin/bash # 실행중인 도커 컨테이너 내부로 접속하는 명령어.
Docker Hub 이미지 검색 & Pull
docker search [docker image name] # docker image name 은 docker hub에 올라와 있는 이름을 검색하면 된다.
docker pull [docker image name]:tag # docker hub에 올라온 이미지를 다운로드 받는 명령어.
Tip
- 도커 이미지는 용량이 매우 작은 편이지만, 그래도 메모리 공간을 어느 정도 차지하고 있음. 본인이 사용하지 않는 이미지는 삭제 시켜주는게 좋음.
- 도커 이미지 삭제시, 컨테이너를 먼저 삭제해주고, 이미지를 삭제해야 함. 컨테이너가 실행중인데 이미지를 삭제하면 에러나고 삭제 안됨.
- 내가 만들어둔 도커 이미지는 ec2 서버의 필수적인 요소만을 담고 있음. 혹시나 본인이 추가적으로 설치해야되는 패키지가 있을경우, 본인 로컬의 Dockerfile에 패키지 관련 명령어를 절차적으로 삽입하면 됨. (RUN ~~ )
- docker 설치/이미지 생성시에 /var/run/docker.sock의 permission denied 발생하는 경우
- sudo chmod 666 /var/run/docker.sock —> 해당 경로의 권한을 주면 해결됨.