A서버에 구축된 테스트 자동화 시스템을 B서버로 고스란히 옮겨야 할 일이 생겼다.
이 작업을 위하여
1. 공유폴더 구성
2. docker의 컨테이너 속의 작업폴더내용들을 압축하여 서버내 공유폴더로 빼주기
3. 사용중인 컨테이너를 commit시켜 image화 시켜주고 그 image를 docker save를 사용하여 압축파일로 만들어 공유폴더로 넣어주기
4. B서버 에서 해당 압축파일을 docker load 시켜 image화 시켜주기, 작업 폴더 내용 적절한 곳에 압축풀기
5. 해당 image 포트 설정 및 작업 폴더 Volume참조 시켜 run시키기
6. 확인
생각 보다 간단하다. (상황에 따라 추가 절차 있을 수 있음)
시작!
# sshfs root@<A서버 HOST>:<A서버 폴더> <B서버 폴더> -o allow_other //B서버에서, -o allow_other는 옵션
# A서버에서 아무파일이나 넣어 B서버에서 확인이 가능한지 확인하여본다.
# docker exec -it <container> /bin/bash 컨테이너 내부 접속
# cd /var/ //대상 폴더 이동
# tar -cvzf <압축 파일 이름> <압축할 대상>
# ctrl + p +q 입력 하여 빠져나온 다음 docker cp <container>:<대상파일주소> <저장할 폴더> 이용하여 파일 빼준다(공유폴더로 뺴면 편함)
# docker commit <container> <image이름>:<tag>
# docker save -o <압축파일 이름> <image>:<tag> //공유폴더로 바로 저장해주면 편하다.
# 자 이제 B서버로 넘어와 공유폴더에 파일들이 제대로 위치했는지 확인해주자.
# 해준 후 작업폴더 압축파일은 적절한 위치에 압축을 풀어준다. tar -xvzf <압축파일 이름>
# docker load -i <docker save 압축파일 이름> 를 하여 이미지화 //압축파일을 로드할때 -i 옵션 사용
# docker run -d -p <포트> -v <local 볼륨>:<container 내부 볼륨> <image>:<tag>
//A서버에서 cp를 이용해 container 내부 파일을 빼주었지만, B서버에서 굳이 도로 넣어주기보다 -v를 사용하여 연결
'공부 > Docker' 카테고리의 다른 글
[Docker] mongodb 설치 (0) | 2019.10.12 |
---|---|
[Docker] AWS EC2 instance에 postgreSQL, pgadmin4 설치 후 연결 (0) | 2019.05.09 |
error - denied: requested access to the resource is denied (0) | 2018.07.17 |
centos/ubuntu - 설치 (0) | 2018.07.16 |
docker registry(미완) (0) | 2018.07.13 |