Docker Increase Basesize

 1. Check current base size

docker info

 2. Stop docker

sudo service docker stop

 3. Backup Image and Container &  clear Docker

mv /var/lib/docker/image /<someplace>
mv /var/lib/docker/containers /<someplace>

rm -rf /var/lib/docker

 4. Increase the size

cd /usr/bin/
sudo docker daemon --storage-opt dm.basesize=50G

 4. Restart and check Base Disk

sudo service docker start
docker info

 

docker – create own

가. centOS Docker 설치

docker pull centos

https://hub.docker.com/_/centos/

나. Container 연결

centos Docker 를 기본으로 필요한 것들을 설치하고 이미지로 생성하여 개인 Repository 에 등록하는 순서로 진행하고자 한다.

docker run -t -i centos

 다. 개인 이미지를 만들자

컨테이너에 접속해서 원하는 라이브러리든 환경이든 구성을 한다.
예를 들면 아래와 같은 행위를 말하는 것이다. 지신이 설정하고자 하는 환경을 모두 구성한 후에 exit 명령어로 컨테이너를 종료한다

sudo yum groupinstall -y "Server with GUI"
sudo systemctl set-default graphical.target
sudo systemctl default
exit

라. Docker Commit

이제 아래와 같이 Docker 이미지를 Commit 하여 로컬에 이미지를 만든다

– m : 커밋 메시지
– a : Docker 만든 사람
– 0b261b… : 위에서 실행한 Container ID
– ouseruser/sintara:v1 : 만들고자 하는 Docker 명칭

$ docker commit -m "Added json gem" -a "Kate Smith" \
0b2616b0e5a8 tmddno1/tensormsa:v1

생성한 이미지를 확인해 보자. 정상적으로 만든 이미지가 조회가 되고 다시 컨테이너로 실행이 되면 정상이다.

docker images
docker run -t -i tmddno1/tensormsa:v1 /bin/bash

 

마. Docker Hub 에 계정 및 Repository 만들기

– https://hub.docker.com/ 에서 계정을 생성하고 Repository 를 만든다

지금까지 로컬에서 만든 이미지를 Docker Hub 에 올려서 공유해 보자
만들고 나면 docker pull tmddno1/tensormsa 이런식으로 자신의 경로가 생성된다

바. Docker Hub 에 업로드 하기

아래와 같이 로그인하고, 아까 만든 이미지를 PUSH 해주면 끝이다.

docker login 
docker push tmddno1/tensormsa

 사. Docker Hub 에서 받아서 다시 사용하기

받아서 사용하는 것은 중간에 했던 것과 동일하다.
아래와 같이 생성한 이미지를 PULL 하고 , 터미널에 실행하면 된다

docker pull tmddno1/tensormsa
docker run -t -i tmddno1/tensormsa:v1 /bin/bash

막 계정을 만들어서 최신 Tag 가 없다고 나온다면, 아래와 같이 실행하여 버전과 관계 없이 모든 내용을 다운 받도록 해보자

docker pull -a tmddno1/tensormsa

아. 사용하기

여기서 매우 중요한 것이 있다. Image 와 Container 는 다르다는 것이다.
Container 에서 아무리 수정을 하여도 Commit 하기 전까지 Image 는 절대 변경되지 않는다. 둘은 연관이 있으면서도 독립적인 관계인 것이다.
아래는 Container 관련 주요 명령어이다.

[리스트 보기]

sudo docker ps -a

[시작하기]

sudo docker start <containerID>
sudo docker attach <containerID>

[삭제하기]

sudo docker rm <containerID>

차. Docker 환경에서 Graphic 사용하기

원래 서버에는 XRDP 가 설치 되어있다고 가정하고 Container 생성시 아래와 같이 해주면 그래픽 사용가능

docker run -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" -p 8080:8080 -p 8998:8998 -p 8989:8989 -p 7077:7077 tmddno1/tensormsa:v1

Muliti – Terminal [Link]

PID=$(docker inspect --format {{.State.Pid}} 04fe75de21d4)
sudo nsenter --target $PID --mount --uts --ipc --net --pid

Container to Container Connection

sudo docker run --name db -d mongo
sudo docker run --name web -d -p 80:80 --link db:db nginx

Start Container with Daemon

docker run <option> -d <image> 
docker exec -it <container> bash

 

docker – install

처음 AWS EC2 환경을 구성하고 아무것도 없는 상태에서 테스트를 진행하였습니다.

AWS - EC2
OS : RedHat 64bit

가. 삭제하기

기존에 설치된 Docker 를 사용하거나, 신규 설치인 경우에는 불필요

yum list installed | grep docker
docker-engine.x86_64       1.12.1-1.el7.centos @docker-main-repo
sudo yum -y remove docker-engine.x86_64
rm -rf /var/lib/docker

나.  자동설치

sudo yum update 
curl -fsSL https://get.docker.com/ | sh

[trouble shooting when ssh related error happens]

sudo yum update 
curl -k -fsSL https://get.docker.com/ | sh

다. Docker 실행

sudo service docker start
sudo service docker stop
sudo service docker restart 

 라. Docker 그룹을 만든다

슈퍼 유저가 아닌 유저로도 Docker 가 잘 실행되도록 세팅하는 과정이다
(1) 슈퍼유저로 로그인 (2) 그룹 Docker 생성 (3) 그룹에 사용할 유저 추가 (4) root exit
(5) test : docker run hello-world

su
sudo groupadd docker
sudo usermod -aG docker ec2-user
exit
docker run hello-world

라. 필요 없는 이미지는 삭제

hello-world 이미지가 정상동작하는 것을 확인하고 깔끔하게 모든 Docker 이미지를 지워버리도록 하겠다

sudo docker run hello-world
docker stop $(docker ps -a -q) 
docker rm $(docker ps -a -q)

마. 부팅시 기동되도록 세팅

sudo chkconfig docker on

 

Python – TensorFlow – Django 개발환경 구축 종합

가. OS  환경 구축 및 기본 설정 (링크)
Linux 계정 생성

나. Anaconda 및 Pycharm 설치 (링크)

다. GitHub – Pycharm  연동 (링크)

라. Django – Rest F/W – TensorFlow 연동
설치 및 개발 1부
설치 및 개발 2부
설치 및 개발 3부

마.  Jenkins  CI 환경 구축 및 활용 (링크)

PyCharm – Git 연동

가.   Git Account Create

아래의 주소에 접속하여 계정을 생성

– URL : https://github.com/

나. 프로젝트를 생성스크린샷, 2016-09-03 11-58-04

다. Pycharm 연동

[상단 메뉴 > VCS >> Check Out from .. >> Github]

아래와 같은 창이 나오면, 아까 생성했던 계정을 입력해 주세요

스크린샷, 2016-09-03 12-00-08

[해당 환경에서 앞으로 사용할 비밀번호 생성]

스크린샷, 2016-09-03 12-01-05

[어떤 프로젝트를 가지고 올지 결정] 스크린샷, 2016-09-03 12-02-03

[프로젝트 로드 완료]  스크린샷, 2016-09-03 12-03-24

[자원 커밋하기]

GIT   에 자원은 커밋하는 순서는  add > commit > push  순서이다.
커밋하고자 하는 자원을 선택하고 > 마우스 우클릭 >  git 메뉴에서 (add, commit, push) 를선택하여 수행할 수 있다.

커밋시에 Description  은 필수 사항이다

스크린샷, 2016-09-03 12-11-01 스크린샷, 2016-09-03 12-11-22

RHEL- bitnami – Redmine 간편 설치

  1. 다운로드  : https://bitnami.com/stack/redmine/installer
  2. chmod 700 bitnami-redmine-3.3.0-1-linux-x64-installer.run
  3. sudo bitnami-redmine-3.3.0-1-linux-x64-installer.run

[bitnami 관리 Application]

  • Manager 실행 : manager-linux-x64.run (root 권한으로 설치한 경우)
  • web 접속 : http://ip/redmine

스크린샷, 2016-08-15 06-10-07

[개발 일정 관리 달력]

스크린샷, 2016-08-15 06-24-31

[개발 Task 관리 간트 차트]

스크린샷, 2016-08-15 06-24-45

[자료 공유 게시판]

스크린샷, 2016-08-15 06-25-06

[WIKI 자료 공유]

스크린샷, 2016-08-15 06-25-24

[Task 관리]

스크린샷, 2016-08-15 06-35-11

RHEL7 – Redmine 설치하기

A. Ruby 설치

– repository  조회

grep -B1 -i optional /etc/yum.repos.d/*

 – optional source  아닌 repository 탐색 하여 enable

yum-config-manager --enable <repo-id>
sudo yum makecache

– 필요한 패키지 인스톨

yum -y install gcc mysql-devel ruby-devel rubygems
sudo yum install gcc g++ make automake autoconf curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel sqlite-devel
sudo yum install ruby-rdoc ruby-devel

B.  git 설치

yum install perl-devel
yum install perl-CPAN
# C compiler install  
yum groupinstall 'Development Tools'
# yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel
$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

C. MySQL 설치

-이동 : https://dev.mysql.com/downloads/repo/
-다운로드 : mysql57-community-release-el7-8.noarch.rpm
-repository 설치 : # yum localinstall mysql57-community-release-el7-8.noarch.rpm
-repository 설정 확인 : # yum repolist enabled | grep "mysql*-community*"
-MySql 설치 : yum --disablerepo=\* --enablerepo='mysql*-community*' install mysql-server

E. 의존성 설치

gem install ruby-openid
yum install ImageMagick-devel -y

F. DB 설정

# service mysqld start
 # service mysqld status
 # grep 'temporary password' /var/log/mysqld.log
 # mysql -u root -p
mysql> SET PASSWORD = PASSWORD('xxxxxxxxxxxx');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'xxxxxxx';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
Query OK, 0 rows affected (0.00 sec)

참조 : http://stackoverflow.com/questions/33510184/change-mysql-root-password-on-centos7

 

E. RedMine 설치

– 참조 사이트

https://www.easyredmine.com/resources/installation/custom-installation
$ gem install redmine-installer
$ wget http://www.redmine.org/releases/redmine-3.2.3.zip
$ redmine install redmine-3.2.3.zip

- 진행을 하면 입력란이 아래와 같이 순서대로 나옵니다. 아까 만들었던 DB 정보를 참조하여 넣어 줍니다.

1) Redmine Root – you need to define a folder where Redmine will be installed
2) Load Package
3) Database configuration – definition of database type (MySQL of PostgreSQL)
4) E-mail configuration
5) Installation
6) Moving Redmine – Redmine is moved to the defined root (step 1)
7) Webserver configuration

– 입력 내용 예

Database: redmine
Host [localhost]: localhost
Username: root
Password: 
Encoding [utf8]: utf8
Port [3306]: 3306

 - 나중에 변경을 원할 경우 아래 파일 수정

  redmin/config/database.yml