● 설치(센트OS)
참조 : https://docs.docker.com/engine/install/centos/
CentOS에 Docker 엔진 설치
docs.docker.com
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-nightly
yum-config-manager --enable docker-ce-test
yum install -y docker-ce docker-ce-cli containerd.io --allowerasing
# 시작
systemctl restart docker
systemctl enable docker
● 실행
docker run -it (repository 명)/(실행하고 싶은 이미지):(버전) 쉘
# (ex) docker run -it ubuntu bash
# 이미지 : docker hub 에서 확인
# 이미지 내려받기 : docker pull (이미지):(버전)
# -i : input - 키보드 입력을 표준 입력으로 쉘에 전달
# -t : terminal - 터미널 디바이스와 쉘을 연결
# -it : 프로그램을 화면에 띄움
》 -d : 백그라운드에서 실행(-it의 반대)
(예) docker run -d centos:latest
》 –name : 컨테이너 이름 지정
(예) docker run -it –name centos7 centos:7 bash
》 bash 종료 : exit / ctrl + d (컨테이너 나가기) / ctrl + p,q (컨테이너 나가지 않고 나가기)
● 컨테이너 생성
# container 생성
docker create -it (이미지) # 꺼져있음
# container id 확인
docker ps # 현재 실행 중인 컨테이너
docker ps -a # 모든 컨테이너 출력 - 꺼져 있는 프로그램도 확인 가능
docker ps -a -q # 컨테이너 ID만 출력
# 시작
docker start (container id)
# 들어가기
docker attach (container id)
● 끝
# container 종료
docker stop (container id)
# container 삭제
docker rm (container id) # 중지된 컨테이너만 삭제 가능
docker rm -f (container id) # 실행 중인 컨테이너 삭제 가능
# 중지된 모든 컨테이너 삭제
docker container prune
# 모든 컨테이너 정지 및 삭제
docker stop $(docker ps -a -q) # 정지
docker rm -f $(docker ps -a -q) # 삭제
● 이미지 만들기
docker commit (이름) (이미지 이름):(버전)
# 이미지 빌드
docker build --tag (이미지 이름):(버전) (도커파일 경로)
# 이미지 목록 확인
docker images
# 이미지 삭제
docker rmi -f (image id)
# 실행
docker run (이미지 이름):(버전)
● 포트 포워딩
docker run --name some-nginx -p 9999:80 -d nginx
# 9999번 포트로 찾아오면 80번 포트로 넘겨줌
# 도커의 네트워크는 방화벽이 켜져 있어야 함