1. 도커 설치하기
Linux
curl -s https://get.docker.com/ | sudo sh
리눅스 배포판에 따라 도커 최신버전이 설치 된다.
sudo usermod -aG docker ubuntu
ubuntu 유저 권한을 추가한다.
MacOs or Windows
- 도커 홈페이지에 들어가서 해당 도커를 설치한다.
- 기본적으로 도커는 Linux만 지원하기 때문에 MacOS와 Windows에 설치를 할 때는 가상머신에 설치를 하게 된다.
- 현재 내가 사용하는 환경은 Windows로 Hyper-V를 사용한다.
->쿠버네티스를 사용하면서 Hyper-V를 비활성화를 해두어서 아래와 같은 오류가 발생했다.
Hardware assisted virtualization and data execution protection must be enabled in the BIOS.
- Windows 기능 켜기/끄기에 들어가 Hyper-V 기능을 켜준다.
- 위 방법으로 해결이 안된다면 PowerShell로 들어가 다음 명령어를 입력해준다.
bcdedit /set hypervisorlaunchtype auto
- 나는 두 번째 방법으로 다시 Hyper-V를 활성화 시켰다.
- 도커를 실행
- cmd에 들어가 docker version 을 입력하여 도커의 버전을 확인할 수 있다.
- Client 와 Server로 분리되어 버전을 확인할 수 있다.
- 현재 명령어를 치는 것은 Client이고 보이지 않는 localhost에 Server가 실행 중이다.
- docker CLI는 docker host에게 명령을 전달
- host에 설치된 docker daemon에서 명령을 수행
- 수행 결과를 받아서 출력
2. 도커 명령어
run - 컨테이너 실행
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
-d | detached mode (백그라운드 모드) |
-p | 호스트와 컨테이너의 포트를 연결 |
-v | 호스트와 컨테이너의 디렉토리를 연결 |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
--name | 컨테이너 이름 설정 |
--rm | 프로세스 종료시 컨테이너 자동 제거 |
-it | -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 |
--network | 네트워크 연결 |
ubuntu 20.04 컨테이너 만들기
- run 명령어를 사용하면 이미지가 있는지 확인 후 없다면 다운로드(pull)하고 컨테이너를 생성(create)한 후, 시작(start)합니다.
- 컨테이너가 실행 후 어떠한 명령어도 전달하지 않았기 때문에 컨테이너는 생성 후 바로 종료된다.
- 컨테이너는 프로세스이므로 실행중인 프로세스가 없으면 컨테이는 종료
- 컨테이너에 명령을 주기 위해서는 --it 명령어를 입력해야 한다.
- --rm을 사용하면 종료와 동시에 컨테이너가 제거 된다.
CentOS 실행하기
- 도커는 다양한 리눅스 배포판을 실행할 수 있으며 동일한 리눅스 커널 버전을 사용해야 합니다.
웹 어플리케이션 실행하기
- -p 명령어를 사용하여 5678번 port를 연결
Redis 실행하기
- windows에서 telnet 명령어를 사용할 수 없다고 나온다. 그럴 시, Windows 기능 켜기/끄기로 들어가 해당 기능을 켜주면 된다.
- 기능을 켜준 후, 다시 해당 포트로 접속한다.
MySQL 실행하기
- -d 명령어를 입력하여 백그라운드에서 실행
- 3306포트가 사용 중이라 1234 번 포트로 실행
- 샐행중인 도커 컨테이너에 접속할 때 exec라는 명령어를 사용하여 접속한다.
워드프레스 블로그 실행하기
- 워드프레스 실행 시, database connection 오류가 난다면 데이터베이스와 연결이 안되었으니 데이터베이스의 포트번호를 3306이 아닌 다른 포트로 지정을 해두었다면 꼭 host.docker.internal:변경한포트번호 를 입력해주세요.
ps 명령어
- docker ps : 실행중인 컨테이너 목록을 확인합니다.
- docker ps -a : 중지된 컨테이너도 함께 확인합니다.
stop 명령어
docker stop [OPTIONS] CONTAINER [CONTAINER...]
- 실행중인 컨테이너를 하나 또는 여러개(띄어쓰기) 중지할 수 있습니다.
rm 명령어
docker rm [OPTIONS] CONTAINER [CONTAINER...]
- 종료된 컨테이너를 완전히 제거합니다.
logs 명령어
docker logs [OPTIONS] CONTAINER
- 해당 컨테이너의 로그를 확인할 수 있습니다.
- -f 옵션으로 로그를 지속적으로 확인
images 명령어
docker images [OPTIONS] [REPOSITORY[:TAG]]
- 다운로드한 이미지 목록을 확인
pull 명령어
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
- 이미지를 다운로드
rmi 명령어
docker rmi [OPTIONS] IMAGE [IMAGE...]
- 이미지를 삭제 /단, 컨테이너가 실행중이면 이미지는 삭제되지 않습니다.
network create 명령어
docker network create [OPTIONS] NETWORK
- 컨테이너끼리 통신할 수 있는 가상의 네트워크를 만듭니다.
network connect 명령어
docker network connect [OPTIONS] NETWORK CONTAINER
- 생성된 컨테이너에 네트워크를 추가합니다.
- 워드프레스와 mysql를 네트워크를 통해 연결
volume mount (-v) 명령어
- 컨테이너가 사라지면 컨테이너에 남겨두었던 DB데이터가 전부 삭제된다.
-> 컨테이너가 사라지더라도 DB같은 사라지면 안되는 데이터들을 남겨두기 위하여 volume 옵션을 지정하여 저장해두도록 한다.
'Kubernetes, Docker' 카테고리의 다른 글
[Docker] 도커란 무엇인가? / 초보를 위한 도커 안내서 - 1일차 (0) | 2022.11.14 |
---|---|
[Kubernetes] 쿠버네티스 Tips 및 수강 후기/ 쉽게 시작하는 쿠버네티스(v1.25) - 5일차 (0) | 2022.11.10 |
[Kubernetes] 쿠버네티스 문제 상황 만들기 및 오브젝트란?/ 쉽게 시작하는 쿠버네티스(v1.25) - 4일차 (0) | 2022.11.09 |
[Kubernetes] 쿠버네티스 배포 및 구성요소 / 쉽게 시작하는 쿠버네티스(v1.25) - 3일차 (0) | 2022.11.08 |
[Kubernetes] 쿠버네티스 환경 구성/쉽게 시작하는 쿠버네티스(v1.25) - 1,2일차 (0) | 2022.11.07 |
댓글