1.도커 설치
도커는 기본적으로 리눅스 기반에 맞춰 개발환경이 갖춰져있으므로 만약 윈도우 사용자라면 VM으로 우분투를 설치하여 사용하길 권장합니다.
curl -s https://get.docker.com/ | sudo sh
설치 방법은 여러개가 있겠지만 아래의 명령어로 손쉽게 설치 가능합니다.
docker version
위의 명령어로 도커가 설치완료되었는지 확인합니다.
2.도커 실행
docker run [OPTIONS] IMAGE:[version] [COMMAND]
-option
-d | detached mode (백그라운드 모드) |
-p | 호스트와 컨테이너의 포트를 연결 |
-v | 호스트와 컨테이너의 디렉토리를 연결 |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
--name | 컨테이너 이름 설정 |
--rm | 프로세스 종료시 컨테이너 자동 제거 |
-it | 터미널 입력을 위한 옵션(컨테이너 내부) |
--network | 네트워크 연결 |
위와 같은 형식으로 도커를 실행할수 있다.
-실행
docker run ubuntu:20.04
위와 같이 실행하면, 우분투 20.04 이미지를 다운받아 실행하게 됩니다. 도커의 실행은 하나의 프로세스 실행과 같아서 위의 명령어로는 실행은 되지만 이외의 동작은 없고 바로 프로세스가 종료되게 됩니다.
docker run -it ubuntu:20.04
실행한 우분투 컨테이너 내부에서 터미널 입력이 가능해집니다.
docker run -d -p 3306:3306 \
-e MYSQL_ALLOW_EMPTY_PASSWORD=true \
--name mysql \
mysql
mysql최신 버전의 이미지를 mysql이름을 지정후 다운 받은후, 3306(로컬):3306(컨테이너) 포트를 연결시켜주어 백그라운드에서 동작시켰습니다.
docker exec -it mysql mysql
create database wp CHARACTER SET utf8;
grant all privileges on wp.* to wp@'%' identified by 'wp';
flush privileges;
-exec명령어
docker run과는 달리, docker exec는 이미 실행중인 컨테이너에 접속할때 사용되는 명령어입니다. exec로 백그라운드에서 실행중인 mysql에 접속하여 데이터베이스를 생성해주었습니다.
3.도커 기본명령어
-ps: 실행중인 도커 컨테이너를 확인하는 명령어
docker ps
docker ps -a # 실행중지된 컨테이너까지 모두 확인가능
-stop: 도커 컨테이너 중지 명령어
docker stop [OPTIONS] CONTAINER [CONTAINER...]
컨테이너 ID or NAME으로 중지명령
-rm: 도커 컨테이너 삭제 명령어
docker rm [OPTIONS] CONTAINER [CONTAINER...]
-logs: 실행중인 컨테이너의 로그를 확인하는 명령어
docker logs [OPTIONS] CONTAINER
-images: 다운받은 이미지를 확인하는 명령어
docker images [OPTIONS] [REPOSITORY[:TAG]]
-pull: 도커 이미지를 다운받는 명령어
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
-rmi: 도커 이미지 삭제 명령어
docker rmi [OPTIONS] IMAGE [IMAGE...]
4.도커 network
앞서 설명한 명령어중 --name을 통해 네이밍이 되어있는 컨테이너들끼리 통신을 위한 방식입니다.
웹서비스를 운영할때 80번 외부포트에서 request를 받아주면 내부의 로컬끼리는 포트번호를 통해 통신을 하는데 도커의 컨테이너 통신에서는 컨테이너를 생성할때 지어준 이름으로 통신을 하게 됩니다.
-network create
docker network create [OPTIONS] NETWORK-NAME
-network connet
docker network connect [OPTIONS] NETWORK CONTAINER
네트워크 생성 -> 기존생성된 컨테이너 네트워크에 연결
위와 같은 과정을 거치면 네트워크에 연결한 컨테이너는 서로 통신을 할수 있는 준비가 됩니다.
ex)
docker run -d -p 8080:80 \
--network=example \
...
ref. 인프런 강의. 초보를 위한 도커 안내서를 보고 참고하여 정리하였습니다.
Docker - 도커란 무엇인가
도커, 도커를 사용하는 이유, 도커의 특징 이해
wooody92.github.io
초보를 위한 도커 안내서 - 인프런 | 강의
도커를 1도 모르는 입문자, 초보자분들을 위한 도커 안내서 입니다. 복잡한 내용을 제외하고 도커가 왜 인기가 많고 어떻게 사용하는지 빠르게 익힐 수 있도록 집중하였습니다., 데브옵스 입문
www.inflearn.com
'기술 > Devops' 카테고리의 다른 글
aws(2)VPC(Virtual Private Cloud) (0) | 2022.04.19 |
---|---|
aws(1)S3(Simple Storage Services) (0) | 2022.04.19 |
도커(4)-이미지 (0) | 2022.01.19 |
도커(3)-도커 컴포즈 (0) | 2022.01.17 |
도커(1)-도커란? (1) | 2022.01.13 |