내가 docker를 공부하는 이유는 docker에 jenkins를 설치해보기 위함이다.
컨테이너 기반의 오픈소스 가상화 플랫폼이다.
다양한 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공해서 프로그앰의 배포 관리를 단순하게 해준다는 장점이 있다.
https://docs.docker.com/desktop/install/windows-install/
설치된 docker desktop을 실행시킨다.
도커가 잘 설치되었는 지 확인하기 위해 cmd 창에 docker version
명령어 입력
docker run ubuntu:16.04
명령어를 통해 ubuntu 16.04 컨테이너를 생성했다.
run
: 사용할 이미지가 있는지 확인하고 없다면 다운(pull)을 한 후에 컨테이너를 생성하고 시작한다.
컨테이너는 프로세스이기 때문에 실행중인 프로세스가 없으면 종료된다. 따라서 생성되자마자 종료된다.
docker run --rm -it ubuntu:16.04 /bin/bash
명령어를 통해 컨테이너를 실행시킨다.
--rm
: 프로세스가 종료되면 컨테이너가 자동으로 삭제되도록 하는 옵션
-it
: 키보드 입력(표준 입력)으로 전달할 수 있도록 하는 옵션
/bin/bash
: 컨테이너 실행(해당 container shell에 접속하겠다는 의미)
cat /etc/issue
: 리눅스 버전 확인
exit
: bash 쉘을 종료하면 컨테이너도 같이 종료
간단한 사용법보기 => MySQL Docker hub
--name
: 이름 지정 (도커가 기본적으로 이름을 지어주는데, 유명한 이름과 수식어를 조합하여 랜덤생성)
-e
: 환경변수를 설정
MYSQL_ALLOW_EMPTY_PASSWORD=true
: 패스워드 없이 root계정을 만들기 위한 환경변수 설정
-d
: 백그라운드 모드로 띄우기 위한 옵션
docker exec -it mysql /bin/bash
mysql -uroot
show databases;
ps: 컨테이너 목록 확인
docker ps -a
-a
: 모든 목록 보기
stop: 컨테이너 중지하기
docker stop [Container_Id]
rm: 컨테이너 삭제하기
docker rm [Container_Id]
중지된 컨테이너 모두 삭제: docker rm -v $(docker ps -a -q -f status=exited)
images: 이미지 목록 확인하기
docker images
pull: 이미지 다운로드하기
docker pull ubuntu:14:04
rmi: 이미지 삭제하기
컨테이너를 제거하지 않고 이미지를 제거하면 에러가 발생한다.
unable to delete 14905234a4ed (must be forced) - image is being used by stopped container e78a4013bbe8
exec: 컨테이너 명령어 실행하기
docker exec -it mysql /bin/bash
: 쉘로 권한 얻기
-it
: 키보드 입력을 위한 옵션
/bin/bash
: bash 쉘로 접속해서 사용
docker exec -it mysql mysql -uroot
: 바로 mysql 명령어 실행
참고: 초보를 위한 도커 안내서