728x90
반응형
자주쓰는 명령어
$ docker login -- registry 로그인
$ docker search nginx -- 검색
$ docker pull nginx -- pull
$ docker run -p 80:80 --name web nginx -- 실행
$ docker ps -- 실행중인 docker 프로세스
$ docker ps -a -- 생성/실행/중지 중인 docker 프로세스
$ docker stop web -- web 이란 컨테이너 중지
$ docker rm web -- web 이란 컨테이너를 삭제 (running 중인 컨테이너는 삭제가 불가)
$ docker rm -f web -- web 실행중이어도 강제로 중지하고 삭제
$ docker rmi nginx -- nginx 이미지 삭제
$ docker inspect web -- 컨테이너 상세보기
컨테이너 배포
Dockerfile 문법정리
- FROM - 컨테이너 BASE IMAGE 지정
- MAINTAINER - 이미지 생성한 사람의 이름 및 정보
- LABEL - 컨테이너 정보 저장
- RUN - 컨테이너 빌드를 위해 BASE IMAGE 에서 실행할 COMMAND
- COPY - 컨테이너 빌드시 호스트의 파일을 컨테이너로 복사
- ADD - 컨테이너 빌드시 호스트 파일을 컨테이너로 복사 (tar, url(ftp://..)도 가능)
- WORKDIR - 컨테이너 빌드시 명령이 실행될 기본 디렉터리 설정
- ENV - 환경변수 지정
- USER - 명령 및 컨테이너 실행시 적용할 유저 설정
- VOLUME - 파일 또는 디렉터리를 컨테이너의 디렉터리로 마운트
- EXPOSE - 컨테이너 동작 시 외부에서 사용할 포트 지정
- CMD - 컨테이너 동작시 자동으로 실행될 서비스나 스크립트 지정(명령어 치환 가능)
- ENTRYPOINT - 컨테이너 동작시 자동으로 실행될 서비스나 스크립트 지정(명령어 치환 불가)
여기서 호스트란 도커가 설치되어있는 머신을 의미
CMD vs ENTRYPOINT
명령어 치환은 실행 명령의 default 지정 여부라고 생각하면 된다.
컨테이너실행시 Dockerfile에 설정한 명령어를 대차 할 수 있는지 (CMD는 실행시 받은 인자로 대체 실행이 가능하다.)
변경되지 않을 실행 명령은 ENTRYPOINT로 정의하자
Default option 인자 값은 CMD로 정의해주자
ENTRYPOINT ["/test.sh"] CMD ["hello"]
build & deployment
$ docker build -t hellojs:latest . -- build
$ docker login
$ docker tag hellojs:latest sunghyunk/hellojs:latest -- 이름 바꾸기(IMAGE ID는 동일하고 이름만 2개 존재한다. docker images)
$ docker push sunghyunk/hellojs -- deployment
컨테이너 사용 & 운영하기
$ docker create --name webserve nginx:1.14 -- 컨테이너 생성(백그라운드 실행)
$ docker start webserver -- 컨테이너 실행
$ docker run --name webserver nginx:1.14 -- 컨테이너 생성/실행
run == pull -> create -> start
$ docker top webserver
$ docker logs webserver
$ docker exec webserver /bin/bash -- 실행중인 컨테이너에 명령어를 실행하고 싶을 때
$ docker exec -it webserver /bin/bash -- i(interactive), t(terminal)
$ docker inspect --format '{{.NetworkSettings.IPAddress}}' webserver
컨테이너 리소스 관리
굳이... 필요할 것 같지 않아서.. 필요시 정리
728x90
반응형
'프로그래밍 노트 > 도커' 카테고리의 다른 글
[docker] docker-compose 특정 컨테이너만 실행 (0) | 2021.07.12 |
---|---|
스웜(swarm)을 이용한 도커 컨테이너 배포_3 (스웜 클러스터 외부에서 서비스 사용하기) (0) | 2021.03.29 |
스웜(swarm)을 이용한 도커 컨테이너 배포_2 (0) | 2021.03.27 |
스웜(swarm)을 이용한 도커 컨테이너 배포_1 (0) | 2021.02.05 |
실용적인 (도커)컨테이너 구축 및 배포를 위한 지식_1 (0) | 2021.01.30 |