설치 및 설정
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum install -y docker-ce
sudo systemctl start docker
sudo systemctl enable docker
sudo gpasswd -a root docker
centos 6과 7은 설치 방법이 다르다
7 명령어로 6에서 설치하려고 해봤자 실패
설치가 정상적으로 되었다면 버전 확인
docker version
도커 기본 명령어
도커 컨테이너 확인
docker ps
도커 이미지 확인
docker images
도커 컨테이너 삭제
docker rm 컨테이너이름
도커 이미지 삭제
docker rmi 이미지이름
가장 빨리 만나는 Docker
http://pyrasis.com/docker.html
docker-compose 설치
설치
curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o
chmod +x /usr/local/bin/docker-compose
설치가 잘 되었는지 확인
docker-compose version
virtual box 설치
docker-machine을 사용하려면 virtualbox가 미리 설치되어 있어야 하므로 먼저 설치해준다
wget 설치
yum install wget
cd /etc/yum.repos.d
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
cd
yum repolist
yum list VirtualBox*
yum install VirtualBox-5.0
virtualbox -v
virtualbox 가상화 관련 오류 해결
yum groupinstall "Development tools"
yum install https://centos7.iuscommunity.org/ius-release.rpm
yum install dkms
yum install kernel-devel
reboot
docker-machine 설치
설치
curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
설치 확인
docker-machine -version
노드 리스트 확인
docker-machine ls
노드 생성
docker-machine create 이름
편의상 node00부터 3개를 생성
만약 create 하다가 vb 관련 오류가 난다면
cmos로 진입해서 advanced-virtual~~ 항목을 enabled로 수정
sudo /sbin/rcvboxdrv setup
만약 노드 확인 했을때 쿼리에러가 나있다면
docker-machine regenerate-certs 노드이름
노드 시작
docker-machine start 노드이름
노드 중지
docker-machine stop 노드이름
swarm
클러스터 초기화
docker swarm init --advertise-addr 서버아이피
워커 노드 토큰 확인
docker swarm join-token worker
매니저 노드 토큰 확인
docker swarm join-token manager
노드 접속
docker-machine ssh 노드이름
접속이 되면 귀여운 고래가 나온다
접속한 노드에서 매니저 토큰을 입력하면 매니저로 조인된다
접속한 노드에서 워커 토큰을 입력하면 워커로 조인된다
매니저가 날아갔을 때 복원 방법
docker swarm init --force-new-cluster --advertise-addr 아이피:2377
Docker war 배포
톰캣 경로 확인
/usr/local/server/apache-tomcat-8.5.33/
톰캣 webapps 안에 war 파일 업로드
tomcat pull
docker pull tomcat:8
war파일과 함께 데몬 형태로 듸우고 외부에서 접근 가능하도록 port forwarding 설정
docker run -d -i -t --name="tomcat8-test" -p 8081:8080 -v /mypath/test.war:/usr/local/server/apache-tomcat-8.5.33/webapps/파일이름.war tomcat:8
Dockerfile에 서버가 항상 떠있도록 설정
FROM openjdk:8-jre-alpine ENV CATALINA_HOME /usr/local/tomcat ENV PATH $CATALINA_HOME/bin:$PATH ... EXPOSE 8080 CMD ["catalina.sh", "run"]
search 명령으로 이미지 검색하기
docker는 docker hub를 통해 이미지를 공유하는 생태계가 구축되어 있다
명령어로 docker hub에서 이미지를 검색할 수 있다
이미지 받기
pull 명령으로 이미지를 받을 수 있다
이미지 목록 출력하기
모든 이미지 목록 출력하기
특정 이미지 출력하기
>>이미지 태그는 다르지만 이름이 같은 이미지들은 모두 출력된다
컨테이너 생성하기
--name 옵션으로 컨테이너 이름을 지정할 수 있다
이름을 지정하지 않으면 docker가 자동으로 이미지를 생성하여 지정한다
컨테이너 목록 확인하기
-a 옵션을 사용하면 정지된 컨테이너까지 출력된다
옵션을 사용하지 않으면 실행되고 있는 컨테이너만 출력된다
컨테이너 시작하기
컨테이너 이름 대신 ID를 사용해도 동일하게 동작한다
컨테이너 재시작하기
컨테이너 이름 대신 ID를 사용해도 동일하게 동작한다
컨테이너 접속하기
DB나 서버 애플리케이션은 입력은 불가능하고 출력만 볼 수 있다
컨테이너 정지하기
컨테이너 이름 대신 ID를 사용해도 동일하게 동작한다
컨테이너 삭제하기
컨테이너 이름 대신 ID를 사용해도 동일하게 동작한다
이미지 삭제하기
이미지 이름 대신 ID를 사용해도 동일하게 동작한다
컨테이너의 변경 사항을 이미지로 생성하기
컨테이너의 변경 사항을 이미지 파일로 생성할 수 있다
sudo docker commit -a "Foo Bar <foo@bar.com>" -m "add hello.txt" hello-nginx hello:0.2
컨테이너에서 변경된 파일 확인하기
컨테이너가 실행되면서 변경된 파일 목록을 출력한다
출력되는 내용에서 A옵션은 추가된 파일, C옵션은 변경된 파일, D는 삭제된 파일
세부 정보 확인하기
컨테이너 연결하기