image 생성
# docker commit [옵션] [컨테이너 이름] [백업파일이름:버전]
* 컨테이너 이미지를 생성하는 동안 컨테이너 일시정지
# docker commit -p sonarqube sonarqube-backup-0510:latest
* 실행중인 컨테이너 이미지 생성 (일시정지 안함)
# docker commit sonarqube sonarqube-backup-0510:latest
image tar 파일 생성
# docker save [옵션] [저장경로/파일이름.tar] [이미지이름:버전]
# docker save -o /home/docker/docker_backup/20210510/sonarqube-backup-0510.tar sonarqube-backup-0510:latest
볼륨 백업
* 임시 컨테이너를 만들어서 볼륨을 생성하고 임시 생성된 컨테이너 삭제
# docker run --rm --volumes-from [컨테이너ID/컨테이너이름] -v [컨테이너 디렉터리]:[호스트 디렉터리] [컨테이너이름] tar cvf [저장할 볼륨 파일명.tar] [볼륨 위치]
* $(pwd) : 현재 컨테이너 위치 - 지금은 /home/docker/docker_backup/vol0510 : 백업파일 저장할 위치
- jenkins
# docker run --rm --volumes-from jenkins -v /home/docker/docker_backup/vol0510:/backup ubuntu tar cvf /backup/jenkins-volume-backup-0510.tar var/jenkins_home
# docker run --rm --volumes-from 8ef1e13dba76 -v $(pwd):/backup ubuntu tar cvf /backup/jenkins-vol-backup-0510.tar /var/jenkins_home
이미지 로드
> docker load -i [tar 파일]
> docker load -i sonarqube-backup-0510.tar
이미지 run
- sonarqube
# docker run -d -p 9000:9000 -p 9002:9002 --name sonar-new --network sqilab_sonarnet --env SONARQUBE_HOME=/opt/sonarqube sonarqube-backup-0510:latest
- jenkins
# docker run -d -p 8080:8080 --name jenkins-new --network sqilab_sonarnet jenkins-backup-0510:latest
볼륨 복원
* 컨테이너 사이즈 확인
# docker ps --size | grep [컨테이너 이름]
* 볼륨 백업 tar 파일 풀기
# docker run --rm --volumes-from [컨테이너 이름] -v [tar파일 위치한 디렉토리]:[컨테이너에 생성할 임 시 디렉토리] ubuntu tar xvf [임시디렉토리/tar파일]
// 두 명령어 중 아무거나 실행 후 컨테이너 재시작
# docker run --rm --volumes-from jenkins-new -v D:\docker\sqilab\backup:/backup ubuntu tar xvf /backup/jenkins-vol-backup-0510.tar
docker hub push
# docker login
# docker tag [이미지 이름:tag] [hub계정/hub이름:tag]
# docker push [hub계정/hub이름:tag]
# docker tab sqi_redmin:1.0 sqisoft/sqi_redmine:1.0
# docker push sqisoft/sqi_redmine:1.0
Redmine DB Backup
# docker exec [container id] /usr/bin/mysqldump -u root --password=redmine redmine > sqi_maraidb.sql
Redmine DB Restore
# docker cp ./sqi_mariadb.sql mariadb:/sqi_mariadb.sql
# docker exec -it mariadb /bin/bash
/# mysql -u root -p redmine < sqi_mariadb.sql //pw:redmine
/# rm sqi_mariadb.sql
Redmine DB Restore (view)
# docker exec -it mariadb /bin/bash
/# mysql -u root -p
> show databases;
> use redmine;
> CREATE OR REPLACE
ALGORITHM = UNDEFINED VIEW `redmine`.`redmine_history_view` AS (
select
`i`.`id` AS `red_seq`,
`p`.`name` AS `red_project`,
`i`.`subject` AS `red_subject`,
`t`.`name` AS `red_tracker`,
`ist`.`name` AS `red_status`,
`i`.`start_date` AS `red_date`,
`i`.`updated_on` AS `red_end`,
`u`.`login` AS `red_user`
from
((((`redmine`.`issues` `i`
join `redmine`.`trackers` `t` on
(`i`.`tracker_id` = `t`.`id`))
join `redmine`.`projects` `p` on
(`i`.`project_id` = `p`.`id`))
join `redmine`.`issue_statuses` `ist` on
(`i`.`status_id` = `ist`.`id`))
join `redmine`.`users` `u` on
(`i`.`assigned_to_id` = `u`.`id`))
where
`t`.`name` = '새기능'
or `t`.`name` = '개선'
or `t`.`name` = '결함'
or `t`.`name` = '신규');
> describe redmine_history_view;
Redmine Plugin Install
1) git clone
# docker exec -it redmine /bin/bash
/# cd /usr/src/redmine/plugins
/# rm -rf [기존 파일] //기존 파일 삭제
/# git clone https://github.com/agileware-jp/redmine_issue_templates //플러그인 git 주소 clone -> plugins 경로에 폴더가 생긴다
2) 파일 다운로드 -> 복사
https://www.redmineup.com/pages/plugins //redmine plugin 다운로드 링크.
파일 다운로드 > zip 파일 압축 해제 > container:/usr/src/redmine/plugins 경로에 copy
# docker cp ./redmine_checklists/ redmine:/usr/src/redmine/plugins/
# docker cp ./redmine_agile/ redmine:/usr/src/redmine/plugins/
# docker exec -it redmine /bin/bash
/# cd /usr/src/redmine/plugins
---
* plugin 설치
/# bundle install --without development test
/# rake redmine:plugins:migrate RAILS_ENV=production
Sonarqube Max_Map_Count
# wsl -d docker-desktop
# sysctl -w vm.max_map_count=262144
# vi /etc/security/limits.conf //이걸로 안된다ㅜ
> ec2-user hard nofile 65536
ec2-user soft nofile 65536
ec2-user hard nproc 65536
ec2-user soft nproc 65536
용량 확인
docker system df