일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 동적 프로그래밍(Dynamic Programming)
- DFS & BFS
- 이분 그래프(Bipartite Graph)
- 그리디 알고리즘(Greedy Algorithm)
- 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)
- 백준 2812번
- 백준 9012번
- 알고리즘 개념
- 백준 2504번
- BFS(Breadth First Search)
- 트리(Tree)
- 이분 탐색(Binary Search)
- 위상 정렬(Topological Sort)
- 큐(Queue)
- 백준 2493번
- 백준 2261번
- 다익스트라 알고리즘(Dijkstra Algorithm)
- 스택(Stack)
- 위상 정렬(Topology Sort)
- DFS
- BFS
- 백준 1948번
- DFS(Depth First Search)
- 백준 21606번
- 백준 18352번
- 백준 1707번
- 그래프(Graph)
- 분할 정복(Divide and Conquer)
- 백준 17608번
- 백준 10000번
- Today
- Total
Always Be Wise
나만의 무기를 갖기 : 도커(Docker) 개념 정리(2) 본문
도커 컨테이너의 생명주기
컨테이너 생성
docker create <이미지 이름>
컨테이너 시작
docker start -a <시작할 컨테이너 아이디/이미지 이름>
컨테이너 실행(컨테이너 생성 + 컨테이너 시작)
도커 컨테이너를 실행하기 위해서는 아래와 같은 구조의 명령어를 도커 클라이언트에 입력하면된다.
docker run <이미지 이름>
컨테이너 중지
stop의 경우, 그동안 하던 작업들을 완료하고 컨테이너를 중지시키는 반면, kill은 즉시 중지시킨다.
docker stop <중지할 컨테이너 아이디/이미지 이름>
docker kill <중지할 컨테이너 아이디/이미지 이름>
컨테이너 삭제
실행 중인 컨테이너는 먼저 중지한 후에 삭제가 가능하다.
# 중지된 컨테이너를 삭제하고 싶다면?
docker rm <삭제할 컨테이너 아이디/이미지 이름>
# 모든 컨테이너를 삭제하고 싶다면?
docker rm `docker ps -a-q`
# 특정 이미지를 삭제하고 싶다면?
docker rmi <이미지 아이디>
# 한번에 사용하지 않는 컨테이너, 이미지, 네트워크 모두 삭제하고 싶다면?
docker system prune
컨테이너 나열
docker ps
docker ps --format 'table{{.Names}}\\ttable{{.Image}}'
docker ps -a
기타 : 실행 중인 컨테이너에 명령어 전달하기
docker exec <컨테이너 아이디> <명령어>
# **이미지 내부 파일 시스템 확인**
docker exec alpine ls
기타 : 컨테이너를 실행하여 명령어 전달하기
docker run <이미지 이름>
# **이미지 내부 파일 시스템 확인**
docker run alpine ls
명령어를 이용한 컨테이너 이해
예) 도커를 이용한 레디스 실행
레디스 서버 실행
docker run redis
레디스 클라이언트 실행
redis-cli
하지만, redis-cli 입력 시 오류가 발생한다. 이유는 레디스 클라이언트가 레디스 서버가 있는 컨테이너 밖에서
명령어를 실행하여 서버에 접근할 수 없기 때문이다. 아래와 같이 레디스 클라이언트를 컨테이너 안에서 실행
시켜야 한다. -it 명령어는 -i : interactive, -t : terminal을 의미하며, 명령어를 실행 후 계속해서 명령어를
입력하기 위함이다.
docker exec -it <컨테이너 아이디> redis cli
그런데 이런 식으로 명령어 하나 입력할 때마다 모든 것을 계속 입력하는 것은 불편하다. 따라서 아래와 같이
컨테이너 안에 쉘이나 터미널 환경으로 접속할 수 있다. exec 대신 run을 사용할 수도 있으며, 해당 쉘을
종료하기 위해서는 Ctrl + D를 입력하면 된다.
docker exec -it <컨테이너 아이디> sh
docker create <이미지 이름>
컨테이너 시작
docker start -a <시작할 컨테이너 아이디/이미지 이름>
컨테이너 실행(컨테이너 생성 + 컨테이너 시작)
도커 컨테이너를 실행하기 위해서는 아래와 같은 구조의 명령어를 도커 클라이언트에 입력하면된다.
docker run <이미지 이름>
컨테이너 중지
stop의 경우, 그동안 하던 작업들을 완료하고 컨테이너를 중지시키는 반면, kill은 즉시 중지시킨다.
docker stop <중지할 컨테이너 아이디/이미지 이름>
docker kill <중지할 컨테이너 아이디/이미지 이름>
컨테이너 삭제
실행 중인 컨테이너는 먼저 중지한 후에 삭제가 가능하다.
# 중지된 컨테이너를 삭제하고 싶다면?
docker rm <삭제할 컨테이너 아이디/이미지 이름>
# 모든 컨테이너를 삭제하고 싶다면?
docker rm `docker ps -a-q`
# 특정 이미지를 삭제하고 싶다면?
docker rmi <이미지 아이디>
# 한번에 사용하지 않는 컨테이너, 이미지, 네트워크 모두 삭제하고 싶다면?
docker system prune
컨테이너 나열
docker ps
docker ps --format 'table{{.Names}}\\ttable{{.Image}}'
docker ps -a
기타 : 실행 중인 컨테이너에 명령어 전달하기
docker exec <컨테이너 아이디> <명령어>
# **이미지 내부 파일 시스템 확인**
docker exec alpine ls
기타 : 컨테이너를 실행하여 명령어 전달하기
docker run <이미지 이름>
# **이미지 내부 파일 시스템 확인**
docker run alpine ls
명령어를 이용한 컨테이너 이해
예) 도커를 이용한 레디스 실행
레디스 서버 실행
docker run redis
레디스 클라이언트 실행
redis-cli
하지만, redis-cli 입력 시 오류가 발생한다. 이유는 레디스 클라이언트가 레디스 서버가 있는 컨테이너 밖에서
명령어를 실행하여 서버에 접근할 수 없기 때문이다. 아래와 같이 레디스 클라이언트를 컨테이너 안에서 실행
시켜야 한다. -it 명령어는 -i : interactive, -t : terminal을 의미하며, 명령어를 실행 후 계속해서 명령어를
입력하기 위함이다.
docker exec -it <컨테이너 아이디> redis cli
그런데 이런 식으로 명령어 하나 입력할 때마다 모든 것을 계속 입력하는 것은 불편하다. 따라서 아래와 같이
컨테이너 안에 쉘이나 터미널 환경으로 접속할 수 있다. exec 대신 run을 사용할 수도 있으며, 해당 쉘을
종료하기 위해서는 Ctrl + D를 입력하면 된다.
docker exec -it <컨테이너 아이디> sh
'카이스트 정글 - 프로젝트 > 나만의 무기를 갖기' 카테고리의 다른 글
나만의 무기를 갖기 : 협력사 발표 전 최종 발표 (0) | 2022.03.07 |
---|---|
나만의 무기를 갖기 : 도커(Docker) 개념 정리(3) (0) | 2022.02.25 |
나만의 무기를 갖기 : 도커(Docker) 개념 정리(1) (0) | 2022.02.23 |
나만의 무기를 갖기 : Authentication (0) | 2022.02.11 |
나만의 무기를 갖기 : API 설계 (0) | 2022.02.10 |