이제 설치를 완료했으니 기본 명령어를 익혀보자.
명령어는 이미지에 관한 명령어, 컨테이너에 관한 명령어 두 가지로 나누어 설명할 예정이다.
이미지와 컨테이너의 차이는 이미지가 실행되면 컨테이너가 된다고 보면 된다(정확한 건 아니지만 프로그램과 프로세스의 차이 정도로 이해하면 된다.) 자세한 내용은 아래 글을 참고하자.
[DevOps/Docker] - Docker (1) - Docker란 무엇인가?
이미지 관련 명령어
이미지 목록 확인
sudo docker images
이미지 검색
처음에 굳이 검색할 필요가 있나?라고 생각을 했는데, 설치된 이미지가 아니라 docker hub에 공개된 이미지들을 검색하는 것이다.
sudo docker search <이미지 검색어>
이미지 받기
sudo docker pull <이미지 name:version>
이미지 삭제
sudo docker rmi <이미지 name>
컨테이너 관련 명령어
컨테이너 실행
우선, 가장 중요한 실행이다. 다른 명령어는 몰라도, 실행 옵션은 Documentation을 정독 해보길 추천한다. 내가 자주 쓸 것 같은 옵션만 몇 개 나열해 놓았다.
docker run <이미지 name> <command> <arg...>
docker run --rm <이미지 name> <command> <arg...> # 컨테이너 종료시 컨테이너 삭제
docker run -d <이미지 name> <command> <arg...> # 백그라운드로 실행
docker run -v ~/data:/data_container <command> <arg...> # ~/data 를 /data_container로 마운트
docker run -p 111:888 <이미지 name> <command> <arg...> # 111번 포트를 888번 포트로 포트포워딩
docekr run -it <이미지 name> /bin/bash # shell 과 같은 interactive process를 실행할때 it 옵션을 주어야한다.
옵션의 경우 <이미지 name> 보다 앞에 지정해주어야 한다.
컨테이너 목록 확인
docker ps # 실행중인 컨테이너 확인
docker ps -a # 정지된 컨테이너까지 확인
컨테이너 시작
sudo docker start [컨테이너 id or name]
컨테이너 재시작
sudo docker restart [컨테이너 id or name]
컨테이너 정지
sudo docker stop [컨테이너 id or name]
컨테이너 삭제
sudo docker rm [컨테이너 id or name]
컨테이너 접속
접속은 결국에 해당 이미지의 shell을 실행시키는 것이다. bash shell의 경우 아래와 같이 입력하면 된다.
sudo docker exec -it <실행중인 컨테이너 id or name> /bin/bash
sudo docker run -it <실행할 이미지 name> /bin/bash
이미지와 같이 root@<container id>로 표기된다면 쉘에 접속된 것이다.
컨테이너 접속 종료
접속한 컨테이너의 shell에서 나온다.
exit
기타
유저에 도커 권한 부여
권한을 부여해주면 위의 명령어들에서 sudo를 생략할 수 있다.
sudo usermod -aG docker <user-id>
Reference
다음 글에서는 ML용 이미지를 설치해보고 간단히 돌아가는지 테스트해보자.
'DevOps > Docker' 카테고리의 다른 글
Docker (4) - 3줄로 간단히 머신러닝/딥러닝 환경 구축하기(docker kaggle image 설치/활용하기) (1) | 2020.07.20 |
---|---|
Docker (2) - Ubuntu에 Docker 설치하기 (0) | 2020.07.20 |
Docker (1) - 입문자를 위한 Docker란 무엇인가? (0) | 2020.07.20 |
댓글