https://rockylinux.org/ko-KR/download
→ 도커 설치 파일 다운로드
/etc/ssh/sshd_config 파일을 넣어 위의 옵션을 추가해줘야만 Root로
다이렉트 로그인이 가능함
dnf 유틸리티를 사용하여 도커 저장소를 Rocky Linux 서버에 추가
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
grep docker /etc/group
→ docker 엔진 설치 시 그룹 자동 생성됨
useradd -d /home/docker -m -g docker docker
→ docker 홈 디렉터리 생성 및 계정 생성 및 그룹지정
→ 실패할 경우 vi /etc/group 디렉터리를 열어 docker 계정 그룹에 직접 추가
passwd docker → 생성된 계정 패스워드 지정
docker 대상 작업(명령어 구성)
→ 대상 : container(생략 가능), image, volume, network 등
작업 : create (exited), start (running), stop /kill (exited), rm (remove)
docker container run
→ 생성 및 실행(동시 진행)
docker container run -it --name study centos
→ centos 이미지 pull 및 컨테이너 설치
docker container rm -f (force)
→ 프로세스 kill 및 삭제(동시 진행)
docker container ps -a
→ 컨테이너(독립된 실행 환경을 가지는 프로세스) 목록 조회
docker image ls
→ 이미지(파일) 목록 조회
※ image 파일을 docker hub에서 내려 받아 container를 생성함
위에서 run으로 생성해두었던 kystudy 접속
→ docker container start -ai kystudy
컨테이너 종료하지 않고 빠져나오는 단축키(detach)
→ CTRL + PQ
컨테이너 재접속
→ docker container attach kystudy
1) attach mode (foreground mode)
→ 사용자가 컨테이너 프로세스(pid=1)의 입출력에 연결된 상태
docker container를 통한 ping test(입출력을 바로 보여줌)
→ docker container run --name c1 centos /bin/ping localhost
2) detach mode(background mode)
→ 사용자가 컨테이너 프로세스(pid=1)의 입출력에 분리된 상태
docker container run -d --name c2 centos /bin/ping localhost
→ d (--detach) : 사용자가 컨테이너 프로세스(pid=1)의 입출력에 분리된 상태
detach 모드 백그라운드 실행 로그 확인
→ docker container logs c2(컨테이너 프로세스(pid=1)의 표준출력/표준오류를 출력)
-t 옵션으로 ping을 날린 시간도 확인 가능
→ docker container logs c2 -t (--timestamp)
-f(follow) 옵션으로 실시간으로 로그가 쌓이는 것 확인 가능
→ docker container logs c2 -f
docker container exec
→ 컨테이너 프로세스(pid=1)이외 추가적인 명령/작업
→ execute (실행)
docker container cp : 컨테이너와 호스트 간의 파일/디렉토리 복사
→ docker container run -dit --name c3 centos
→ echo Hello world > hostfile
→ ls -l hostfile
→ docker cp hostfile c3:/containerfile(컨테이너명:경로)
1) # docker exec c3 ls -l /containerfile
-rw-r--r-- 1 root root 12 May 27 06:37 /containerfile
2) # docker exec -it c3 /bin/bash
[root@8baaf331de74 /]# ls -l /containerfile
-rw-r--r-- 1 root root 12 May 27 06:37 /containerfile
[root@8baaf331de74 /]# cat /containerfile
Hello world
[root@8baaf331de74 /]# exit
3) # docker attach c3
[root@8baaf33
1de74 /]# ls -l /containerfile
-rw-r--r-- 1 root root 12 May 27 06:37 /containerfile
[root@8baaf331de74 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 06:36 pts/0 00:00:00 /bin/bash
root 37 1 0 06:40 pts/0 00:00:00 ps -ef
[root@8baaf331de74 /]# CTRL+PQ
docker cp c3:/containerfile .
→ 현재 디렉터리 containerfile 복사
ls containerfile
→ 현재 디렉터리에 containerfile이 복사된 것을 확인 할 수 있음
docker container rm : 이미 종료된 컨테이너 삭제
→ docker container rm c1
docker rm yumi01
→ Error response from daemon: cannot remove container "/c3": container is running: stop the container before removing or force remove → 아직 컨테이너가 실행중이기 때문에 삭제 안됨
docker container rm -f yumi01
→ -f 옵션을 적용하여 컨테이너 종료 및 삭제 진행
docker container prune
→ 종료된 컨테이너들만 일괄 삭제
모든 컨테이너 일괄 삭제
→ docker rm -f $(docker ps -aq)