설치 방법 (ubuntu)
sudo apt update
apt list --upgradable
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings~
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
docker -V
sudo 없이 docker 사용하도록 설정
sudo usermod -aG docker $USER
이미지 다운로드
docker pull ubuntu/bind9
다운로드되어있는 image 목록
docker images
; 이미지 삭제
docker rmi ubuntu
이미지를 실행시키기
docker run ubuntu
docker run -dit --name test_ubuntu ubuntu
-d 데몬, 백그라운드로 실행
-it or --interactive --tty
상호작용 대화형 모드로 컨테이너 내부 터미널에 접속
프로세스가 종료되지않고 컨테이너가 생성된다.
-p 포트포워딩 설정
docker run -d -p 8080:80 httpd # 호스트 8080포트와 컨테이너의 80 포트를 연결
-v or --volume
호스트와 컨테이너 간의 볼륨 매핑. 데이터를 공유하거나 저장할 수 있도록 함
-v 호스트경로:컨테이너경로 이미지이름
docker run -v /mydata:/app/data 이미지이름
-e or --env
-e 변수=값
컨테이너 내부 프로세스가 해당 환경변수 사용 가능
컨테이너 목록
docker ps
실행중인 컨테이너 보여준다.
docker ps -a
중지된 컨테이너도 보여준다.
컨테이너 제어
docker stop 컨테이너ID or 컨테이너 이름
docker start 컨테이너ID or 컨테이너 이름
docker restart 컨테이너ID or 컨테이너 이름
docker rm 컨테이너ID or 컨테이너 이름
docker logs 컨테이너ID or 컨테이너 이름
컨테이너에 접속, 명령 실행
docker exec 컨테이너ID또는이름 명령문
터미널 세션을 연결하지 않고 실행결과만 보여준다.
docker exec -it 컨테이너ID또는이름 /bin/bash -it /bin/bash 를 실행시키면 컨테이너와 연결된 가상 터미널을 열 수 있다.
docker attach
docker attach 컨테이너ID또는이름
실행중인 컨테이너의 터미널에 현재 터미널 세션을 연결