“ 당신은 소프트웨어 품질을 추구할 수도 있고, 포인터 연산을 할 수도 있다. 그러나 두 개를 동시에 할 수는 없다. ”
Docker Desktop for mac 설치하기
일반적으로 로컬 환경에서 docker를 편리하게 설치하고 실행하기위해 사용한다.
1. 다운로드 및 설치
dmg 파일을 다운로드하여 실행합니다.
Docker.app을 응용 프로그램으로 드래그하여 복사해줍니다.
프로그램을 실행하면 메뉴 막대 상단에 아이콘이 생성됩니다.
터미널 docker 명령어를 통해 정상적으로 설치된 것을 확인 가능합니다.
메뉴에 Dashboard 메뉴를 클릭하여 다음과 같이 대시보드가 실행됩니다.
image와 컨테이너 볼륨을 확인할수있습니다.
2. Docker 명령어
2.1 도커 상태 명령어
- docker version
- docker -v
- docker system info
- docker system df
- docker system df -v
2.2 컨테이너 명령어
docker container run 명령어는 도커 이미지로부터 컨테이너를 생성하고 실행하는 명령어이다.
docker container run <image><command>
- docker container run -name server -d -p 80:80 ngnix:latest
- server라는 이름의 컨테이너로 nginx:latest(최신버전) 이미지를 띄운다.
- [-d] 옵션은 detach로 백그라운드 실행을 의미
- [-p] 옵션은 포트포워딩이다.
컨테이너 상태 확인
- docker container ls [option]
- docker container ps
- docker container stats <container-name>
- docker container top <container-name>
컨테이너 시작//종료/재시작/삭제
- docker start <container-name>
- docker stop <container-name>
- docker container restart <container-name>
- docker container rm <container-name>
- docker container rm -f <container-name> *강제종료 및 삭제
2.3 이미지 명령어
이미지 다운로드
docker image pull [option] <image-name>[:tag]
- docker image pull nginx (nginx 이미지 다운로드)
- docker image ls OR docker images (이미지 목록)
- docker image inspect nginx:latest (이미지 상세정보 표시)
이미지 태그 설정
docker image tag <origin-image-name><new-image-name:tag>
- docker image tag nginx:latest stackshines/server:1.0.0
이미지 tag를 사용하여 새이름으로 이미지를 복사한다.
이미지 조회/삭제
docker search [option] <keyword> (도커 허브에 공개되어 있는 이미지를 조회)
docker image rm <option><image-name> (도커 이미지 삭제)
- docker search ngnix
- docker image rm ngnix
- docker image prune [-a|-f] (사용하지 않는 이미지를 삭제)
2.4 컨테이너로부터 이미지 작성 및 tar 파일 생성
컨테이너로부터 이미지 작성
docker container commit [option] <container-name><image-name:tag>
- docker container commit -a "stackshines" server server-image:1.0.0
컨테이너로부터 tar파일 생성
docker container export <container>
docker container export <container> current.tar
이미지를 tar로 저장
docker image save [option] <save-file> [image-name]
- docker image save -o save.tar server
tar로부터 이미지를 읽어오기
docker image load [option] <image-name>
2.5 Docker Compose
여러 컨테이너를 모아서 관리하기 위한 툴 , docker-compose.yml을 생성 후 사용합니다.
- docker-compose up
- docker-compose up -d (백그라운드)
- docker-compose up -build
- docker-compose config
- docker-compose ps (프로세스)
- docker-compose stop (컨테이너 종료)
- docker-compose down (리소스 삭제)
- docker-compose down -rmi all (모든 이미지 , 네트워크, 볼륨 삭제)
version: "3.3" services: nginx: image: nginx:latest # nginx 이미지 container_name: web # 컨테이너 명 restart: "on-failure" # 구동 실패 시 재시작 ports: - 80:80 volumes: # 볼륨 설정 - ./nginx/nginx.conf:/etc/nginx/nginx.conf client: build: # Dockerfile 빌드 context: ./client # Dockerfile 빌드 경로 container_name: client # 컨테이너 명 restart: "on-failure" volumes: # 볼륨 설정 - './client:/app' - '/app/node_modules' expose: - 3000 env_file: - ./client/.env environment: # 환경변수 설정 - NODE_ENV=development - CHOKIDAR_USEPOLLING=true stdin_open: true tty: true
예를들어서 위에처럼 작성하며, 여러 컨테이너를 모아서 관리할수있다.
무중단 자동배포 환경을 구성하기위해서 필요한 도커 설치법과 설정들을 배울수있었다.
Dockerfile 과 docker-compose.yml 에 대해서 심도있게 공부 필요성을 느꼈다.
여기나와있는 명령어를 기초로 보고 계속연습해야 숙달이 될듯싶다.
다음 docker로 젠킨스 설치에 대해서 포스팅하겠습니다.