일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 도커
- java8
- docker
- custom valid
- spring boot
- 헤더 설정
- Next.js 14
- NextJS
- memcached
- 리눅스
- 초기 세팅
- dto valid
- spring
- generate entity
- generate pojos
- MySQL
- jvm
- java9
- Java
- swagger
- JavaScript
- docker 설치
- React
- ollama langflow
- jpa entity자동
- CentOS6
- SpringBoot
- 초기 구축
- header setting
- JPA
- Today
- Total
개발자의 길
Docker 기본 명령어 본문
도커 명령어
버전 확인하기
$ docker -v # 버전 확인 Docker version 18.09.0, build 4d60db4 |
도커 컨테이너 내부 쉘에서 나가기
도커 컨테이너 내부 쉘에서 나가는 방법은 두 가지가 있습니다.
- exit : 명령어로 exit를 누르고 엔터
- Ctrl + D : 해당 단축키를 누르면 바로 종료
위의 두 가지 방법은 컨테이너를 종료시키고 나오는 방법입니다. 아래 방법은 컨테이너를 종료시키지 않고 나오는 방법 입니다.
- Ctrl + P, Q : 컨테이너를 종료시키지 않고 나오기 (다시 들어가려면 $ docker attach [컨테이너 명])
도커 이미지 가져오기
아래 명령어를 사용하면 도커 공식 이미지 저장소에서 이미지를 내려받습니다.
$ docker pull [이미지 이름]:[태그] |
예제를 보도록 하겠습니다, 그럼 도커 공식 이미지 저장소에서 centos:7 이미지를 다운받게 됩니다.
ex) $ docker pull centos:7 |
이미지 확인하기
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 7e4b16ae8b23 2 weeks ago 188MB centos 7 1e1148e4cc2c 5 weeks ago 202MB |
컨테이너 생성하기
이미지로 컨테이너 생성하기
$ docker create [옵션] [이미지 이름]:[태그] |
예제를 보겠습니다.
$ docker create -i -t centos:7 |
- -i : 상호 입출력
- -t : tty를 활성화하여 bash 쉘을 사용
컨테이너 실행하기
만들어진 도커 컨테이너를 실행하는 명령어 입니다.
$ docker start centos:7 |
컨테이너 들어가기
도커의 내부쉘로 들어가는 명령어 입니다.
$ docker attach centos:7 |
컨테이너 만들고 실행하기
위의 생성 -> 실행 -> 들어가기 까지 한번에 해주는 명령어 입니다.
$ docker run [옵션] [이미지 이름]:[태그] |
- -i : 상호 입출력
- -t : tty를 활성화하여 bash 쉘을 사용
ex) $ docker run -i -t ubuntu:14.04 |
보통은 컨테이너를 생성함과 동시에 시작하기 때문에 run 명령어를 더 많이 사용합니다.
컨테이너 > 이미지로 재생성
port 설정 및 다른 옵션을 주거나,
기존 컨테이너에서 설치하고 수정한 내역을 다시 이미지화 하기 위해 사용합니다.
$ docker commit [기존container명] [새로운 이미지이름] |
주의할 점은 복사할 기존 컨테이너를 stop 하고 해야한다.
stop -> commit -> 새로운 이미지로 run
컨테이너 목록 확인
만들어진 컨테이너 목록을 확인할 수 있습니다.
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES aab67382350b ubuntu:14.04 "/bin/bash" 16 minutes ago Up 16 minutes 0.0.0.0:80->80/tcp mywebserver |
대신 위의 명령어는 현재 실행중인 컨테이너 목록만 확인할 수 있기 때문에, 정지된 컨테이너까지 보고 싶으면, 아래와 같이 -a 옵션을 같이 넣어줍니다.
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 99627ff61fd7 centos:7 "/bin/bash" 42 hours ago Exited (0) 42 hours ago mycentos 1758dcf92334 ubuntu:14.04 "/bin/bash" 43 hours ago Exited (255) 25 hours ago determined_brattain |
- CONTAINER ID : 컨테이너에게 자동으로 할당되는 고유한 ID
- IMAGE : 컨테이너를 생성할 때 사용된 이미지 이름
- COMMAND : 컨맨드는 컨테이너가 시작될 때 실행될 명렁어, 기본은 /bin/bash 명령어라 명령을 쓸 수 있습니다.
- CREATED : 컨테이너가 생성되고 난 뒤 흐른 시간
- STATUS : 컨테이너의 상태 ex) Up(실행 중), Exited(종료), Pause(일시 중지)
- PORTS : 컨테이너가 개방한 포트와 호스트에 연결한 포트
- NAMES : 컨테이너의 고유한 이름, --name 옵션으로 이름을 설정하지 않으면 도커 엔진이 임의의로 설정
컨테이너 이름 변경
$ docker rename [기존 이름] [변경 하고자 하는 이름] |
$ docker rename determined_brattain my_container |
결과
$ docker rename determined_brattain my_container $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 99627ff61fd7 centos:7 "/bin/bash" 42 hours ago Exited (0) 42 hours ago mycentos 1758dcf92334 ubuntu:14.04 "/bin/bash" 44 hours ago Exited (255) 25 hours ago my_container |
컨테이너 삭제
$ docker rm [컨테이너 이름] |
결과
$ docker rm mycentos mycentos |
만약 container가 실행 중이면 종료하고 삭제를 하거나 -f 옵션을 이용해서 강제로 삭제를 해야합니다.
$ docker stop mycentos $ docker rm mycentos
$ docker rm -f centos //stop을 안한 컨테이너 강제 삭제 |
한번에 모든 컨테이너를 삭제하려면 prune 명령어를 통해 삭제할 수 있습니다.
$ docker container prune WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] |
*** -q와 -a 옵션
- -q : 컨테이너 ID만 출력
- -a : 컨테이너 전체 출력
ex)
$ docker stop $(docker ps -a -q) $ docker rm $(docker ps -a -q) |
컨테이너 외부에 노출
컨테이너는 가상 머신과 마찬가지로 가상 IP를 할당 받습니다.
테스트를 위해서 network_test란 컨테이너를 만들어 보겠습니다.
기본적으로 도커는 172.17.0.x의 IP부터 순차적으로 할당합니다.
$ docker run -i -t --name network_test ubuntu:14.04
root@7b5213595de1:/# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.39 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 fe80::42:acff:fe11:27 prefixlen 64 scopeid 0x20 ether 02:42:ac:11:00:27 txqueuelen 0 (Ethernet) RX packets 6 bytes 468 (468.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7 bytes 558 (558.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX packets 1 bytes 28 (28.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1 bytes 28 (28.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
아무 설정을 하지 않으면 기본적으로 컨테이너는 외부에서 접근할 수 없으며 도커가 설치된 호스트에서만 접근 가능합니다
'13. DOCKER' 카테고리의 다른 글
PRIVATE DOCKER REGISTRY 만들기 (0) | 2020.06.17 |
---|---|
docker 로 mysql 설치 실행 (0) | 2020.06.11 |
[Docker] Centos 6 - Docker 설치 (3) | 2019.12.04 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.