2019년 3월 25일 월요일

docker 명령어 모음


도커에 대해 찾아보다가 몇가지 정리해보았다.



1. mysql 컨테이너 생성 
docker run -d --name mysql_test -p3306:3306 -e MYSQL_ROOT_PASSWORD=smart -e MYSQL_DATABASE=redmine mysql:5.6.36

포트를 반드시 지정해줘야 외부에서 붙을 수 있음
포트설정: 외부(호스트쪽) 3306 포트에서 붙으면 컨테이너 내부 3306으로 간다라는 의미


2. redmine 컨테이너 생성
외부 포트 80으로 들어가면 내부 컨테이너의 3000포트로 붙는다.
docker run -d --name redmine_test -p 80:3000 --link mysql_test:mysql redmine:3.0.5
centos 컨테이너 생성
docker run -d --name redmine_test centos:6.8
docker run -it -d --name redmine_test -p 3000:3000 centos:6.8


3. 도커 프로세스 확인
-a옵션은 구동되든 안되든 프로세스 목록 전체 보기이다.
-a옵션을 빼면 구동중인 프로세스 목록만 보여준다.

PS C:\WINDOWS\system32> docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
5a067717ed9e        centos:6.8          "/bin/bash"         6 seconds ago       Up 4 seconds        0.0.0.0:3000->3000/tcp   redmine_test


4. 도커 컨테이너 bash 실행
docker exec -it <container> /bin/bash


5. docker toolbox 설치했다가 docker for windows 로 바꿀때 삭제해야 할 것들
https://stackoverflow.com/questions/49679818/docker-could-not-read-ca-certificate
환경 변수 삭제하기
oracle virtual 머신 삭제하기
docker관련 파일 다 삭제 C:/user/kdh/.docker폴더 삭제


6. 컨테이너 프로세스 죽이기
docker kill mysql_test 

컨테이너  프로세스 삭제하기
docker rm mysql_test

컨테이너  프로세스 시작/재시작/중지/컨테이너붙기
docker start mysql_test
docker restart mysql_test
docker stop mysql_test
docker attach mysql_test

7. 도커 이미지 삭제
docker rmi 55ef31d050f9

8. 도커 이미지 다운로드
docker pull [이미지명]

9. 세팅한 컨테이너 이미지로 생성
-a 옵션 : 로그 기록
docker commit -a "mysql5.7 + redmine file upload" redmine_test centos:6.8

10. 도커 컨테이너로 파일 옮기기
docker cp C:/Users/xxx/Downloads/redmine-4.0.2.tar.gz redmine_test:/home/redmine

11. help 명령어 사용법
아래와 같이 help 명령어를 입력하면 command의 종류와 리스트들을 확인할 수 있다.
docker --help
커맨드 각각에 대한 세부 사용법은 아래와 같이 확인할 수 있다. COMMAND 자리에 확인하고자 하는 명령어를 넣어주면 된다.
docker [COMMAND] --help

docker에 joomla 설치하기



docker를 이용하여 Joomla 를 설치해 보았다.
Docker 설치 방법 참조 : https://hub.docker.com/_/joomla

DB는 Mysql 5.6.36으로 설치해보기로 하고, Joomla는 최신 버전으로 설치하기로 한다.


1. mysql DB 컨테이너 생성

C:\Users\KDH>docker run -d --name mysql_test -p3306:3306 -e MYSQL_ROOT_PASSWORD=smart -e MYSQL_DATABASE=testdb mysql:5.6.36
7ec69c28c2424b058776de0ad4c618bdf4da356d46e1e3ccd4ba93d947d532fd
C:\Users\KDH>docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS                    NAMES
7ec69c28c242        mysql:5.6.36        "docker-entrypoint.s…"   4 seconds ago       Up 3 seconds              0.0.0.0:3306->3306/tcp   mysql_test 
2. joomla 컨테이너 생성 joomla 컨테이너를 만들 때 1번에서 만든 DB를 연결해주면 된다.
docker run --name joomla --link mysql_test:mysql -p 8080:80 -d joomla 
3. 브라우저 접속 방법 http://localhost:8080/ 으로 접속하면  installation 및 DB 설정을 도와주는 화면이 뜬다. DB를 연결할 때 반드시 DOCKER로 띄운 mysql은 컨테이너에 할당된 IP로 적어 줘야 한다. DOCKER가 할당하는 IP가 있는데 DB 를 띄었을 때 DB컨테이너 할당된 아이피로 적어줘야 DB 접속이 된다! * 도커 컨테이너 아이피 확인 방법
docker inspect mysql_test 
뒤에는 컨테이너 이름을 적어주면 아래와 같이 출력이 된다.
"IPAddress": "172.17.0.2", 

2019년 3월 8일 금요일

redmine 테마 설정하기



레드마인 테마를 설정해보자.
상용버전도 있고 무료버전도 있기 때문에 원하는 테마를 다운로드 받아 설치를 하면 된다.

레드마인 테마 리스트는 아래에서 확인 가능하다.

* 공식 홈페이지 테마 리스트
http://www.redmine.org/projects/redmine/wiki/Theme_List
* 혹은 무료중에서도 괜찮은 것들이 많으니 이것 저것 설치해보자.
https://www.redmineup.com/pages/blog/most-popular-best-redmine-themes


테마 설치 경로는 아래와 같다.
레드마인 설치 홈 경로/public/themes 가 된다.
/home/redmine/redmine-4.0.2/public/themes

단순히 아래와 같이 다운로드한 파일을 압축을 풀고 레드마인 서버를 재시작하면 끝이다.

drwxrwxr-x  3 redmine redmine    4096 Feb 22 01:43 alternate
drwxrwxr-x  4 redmine redmine    4096 Feb 22 01:43 classic
drwxrwxr-x 10 redmine redmine    4096 Mar  2 03:47 PurpleMine2-master
-rw-r--r--  1 root    root    1203429 Mar  8 14:45 PurpleMine2-master.zip
-rw-rw-r--  1 redmine redmine      30 Feb 22 01:43 README
drwxrwxr-x  5 redmine redmine    4096 Aug 21  2018 redmine-theme-gitmike-master
-rw-r--r--  1 root    root      97941 Mar  8 14:57 redmine-theme-gitmike-master.zip
drwxrwxr-x  6 redmine redmine    4096 Mar  7 18:11 redmine-theme-yh-master
-rw-r--r--  1 root    root      37077 Mar  8 14:56 redmine-theme-yh-master.zip

admin 계정으로 웹사이트 로그인을 한 후 상단의
관리 -> 설정 -> 표시방식 탭에 들어가서 테마를 변경할 수 있다.

위 화면은 이미 gitmike 테마가 적용되었다.
gitmike 테마는 레드마인 4.0 대 버전에서는 호환이 된다고 나와있진 않은데 직접 적용을 해보니 별 이상없이 잘 되는 모습이다.


centos 6.8 + redmine 4.0.2 설치


* 레드마인 설치 공식 사이트 참조
http://www.redmine.org/projects/redmine/wiki/RedmineInstall


레드마인을 설치 하기 앞서 rvm과 ruby, rails를 설치해야 한다.
* rvm + ruby + rails 설치 하기 참고
https://cyberpunkhunter.blogspot.com/2019/03/centos-rvm-ruby.html



작업 하기 앞서 레드마인 4.0.2버전의 tar 파일을 다운로드 받고 redmine 사용자 계정의 홈 경로에 압축을 풀어놓는다.
레드마인 최신버전 다운로드


1. mysql DB 생성 / 계정 생성 /  권한 주기
mysql> create database redmine character set utf8;
Query OK, 1 row affected (0.01 sec)
mysql> create user 'redmine'@'localhost' identified by 'smart';
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)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye


2. 레드마인 설정 파일 수정

(1) configuration.yml

나는 회사의 메일서버로 보내기 때문에 smtp 방식으로 설정하였다.
레드마인의 일감 등을 메일로 보낼일이 없다면 단순히 초기 카피된 디폴트 상태로 configuration.yml을 두어도 된다.
레드마인 설정파일을 수정할 때에는 반드시 띄어쓰기는 스페이스바로 입력하도록 한다. Tab키를 사용하면 설정파일이 제대로 인식이 안된다.
설정파일 경로 : /redmine홈디렉토리/config/

cp configuration.yml.example configuration.yml
vi configuration.yml
# = Redmine configuration file
#
# Each environment has it's own configuration options.  If you are only
# running in production, only the production block needs to be configured.
# Environment specific configuration options override the default ones.
#
# Note that this file needs to be a valid YAML file.
# DO NOT USE TABS! Use 2 spaces instead of tabs for identation.

# default configuration options for all environments
default:
  email_delivery:
      delivery_method: :smtp
      smtp_settings:
        address: "메일서버"
        port: 25
        domain: '도메인입력'
        enable_starttls_auto: false

(2) database.yml
레드마인 데이터베이스 접속 정보를 등록한다.
vi database.yml

# Default setup is given for MySQL with ruby1.9.
# Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.
# Line indentation must be 2 spaces (no tabs).

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "패스워드"
  encoding: utf8

cf) 설치를 완료한 후에도 위 설정 파일의 수정이 있을 때는 반드시 레드마인 서버를 재시작 해주어야 반영이 된다.


3. bundler 설치
gem install bundler

Fetching bundler-2.0.1.gem
Successfully installed bundler-2.0.1
Parsing documentation for bundler-2.0.1
Installing ri documentation for bundler-2.0.1
Done installing documentation for bundler after 2 seconds
1 gem installed


4. 의존성 설치
bundle install --without development test


5. Rails에서 사용할 랜덤키 생성
bundle exec rake generate_secret_token


6. 데이터베이스 레드마인 구조 생성
RAILS_ENV=production bundle exec rake db:migrate


7. 데이터베이스에 디폴트 언어 자동 설정
아래와 같이 입력하면 입력 커서가 깜박이는데 ko라고 입력한다.

RAILS_ENV=production bundle exec rake redmine:load_default_data

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa,
 fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR,
 ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ko
====================================
Default configuration data loaded.


8. 레드마인 인스톨 성공 확인 rails 서버 구동 하기
아래와 같이 테스트로 서버를 구동시켜 에러가 없이 정상 동작하는지 확인한다.
bundle exec rails server webrick -e production

=> Booting WEBrick
=> Rails 5.2.2 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
[2019-03-07 04:19:45] INFO  WEBrick 1.4.2
[2019-03-07 04:19:45] INFO  ruby 2.6.0 (2018-12-25) [x86_64-linux]
[2019-03-07 04:19:45] INFO  WEBrick::HTTPServer#start: pid=31585 port=3000
172.17.0.1 - - [07/Mar/2019:04:20:44 UTC] "GET / HTTP/1.1" 200 4473

cf) 아래와 같이 -b와 -p 옵션으로 웹서버 아이피와 포트를 설정하고, -d 옵션은 백그라운드로 구동할 수 있게 한다.
bundle exec rails server webrick -b 192.168.1.195 -p 3000 -d -e production


9. 레드마인 접속 확인
http://서버아이피:3000 이런 식으로 서버를 구동할 때 어플리케이션 구동 URL이 출력되는데 들어가서 메인 화면이 제대로 뜨면 성공이다.
초기 admin 계정 패스워드는 admin 이다.


여기까지 완료했으면 레드마인 기본 설치가 끝난 것이다.



centos 6.8 mysql 5.7 설치 (기존 mysql 5.1 삭제)



CentOS에 기존 5.1로 기본 설치된 mysql을 삭제하고 5.7로 새로 설치하려고 한다.
mysql은 root권한으로 설치를 진행해야 한다.


1. 기존 mysqld 서비스 중지
service mysqld stop


2. mysql 완벽 삭제하기 (삭제 하기 전에는 mysqldump 필수)
* 설치된 mysql 삭제
yum remove mysql mysql-server*
* datadir 삭제
rm -rf /var/lib/mysql


3. mysql 5.7 패키지 내려받기
rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm


4. yum 설치
yum install mysql mysql-server
yum install mysql-devel



5. 버전 확인
[root@3bd0f3e7c48b /]# mysql --version
mysql  Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using  EditLine wrapper
설치가 잘 되었다.


6. mysql 5.7 설치 후 초기 root 패스워드 확인
설치 진행 도중에 임시로 발급해주는 패스워드를 확인하여 로그인을 한다.

[root@3bd0f3e7c48b /]# grep 'temporary  pasword' /var/log/mysqld.log
2019-03-05T01:08:22.747177Z 1 [Note] A temporary password is generated for root@localhost: 2Hn,JjXumk6S
2019-03-05T01:08:27.507708Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
[root@3bd0f3e7c48b /]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.7.25

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql 


7. mysql root 계정 패스워드 설정시 아래와 같은 에러 출력된다.
mysql> alter user 'root'@'localhost' identified by 'test';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


8. vi /etc/my.cnf 에 아래와 같이 설정을 추가하고 mysqld 재시작한다.
[mysqld]
validate-password=off


9. 패드워드를 다시 설정하면 반영이 된다.
mysql> alter user 'root'@'localhost' identified by 'test';
Query OK, 0 rows affected (0.00 sec)


2019년 3월 6일 수요일

rvm + ruby 설치하기



회사에서 레드마인을 3.0 대 버전에서 4.0 버전으로 마이그레이션 하라는 요청이 있었다.
그래서 레드마인을 위한 rvm + ruby 기본 설치부터 진행해보기로 했다.
OS환경은 CensOS 6.8 이다.
rvm 설치는 공식사이트 https://rvm.io/rvm/install 를 참조하였다.

처음 시작할 때는 root 권한으로 설치보다 rvm과 ruby를 실제로 사용할 사용자 계정을 따로 생성하여 작업을 진행하는게 좋다. 따라서 root 권한보다는 일반 계정으로 설치를 권장한다.
따라서 redmine 이라는 계정을 하나 생성하기로 한다.

useradd redmine
passwd [패스워드]

1. rvm 설치
 rvm 이란 루비 설치 버전 관리 툴이라고 할 수 있다. 최신버전이나 원하는 루비의 버전 설치를 쉽게 도와주는 툴이다.
 centos에서 rvm이 아닌 yum install ruby 으로 루비를 설치 하게 되면 아래와 같이 최신버전이 아닌 1.8 루비가 자동으로 설치된다.
[root@crm ~]# ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux] 

따라서 루비 최신버전으로 설치를 하고 추후 버전 관리까지 용이하도록 rvm을 설치 한다.


(1) GPG keys 설치
rvm 패키지가 맞는지 검증하기 위해 공식사이트에서 제공하는 GPG keys라는 것을 먼저 설치한다.
[redmine@5a067717ed9e ~]gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: requesting key D39DC0E3 from hkp server pool.sks-keyservers.net
gpg: requesting key 39499BDB from hkp server pool.sks-keyservers.net
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported
gpg: key D39DC0E3: public key "Totally Legit Signing Key <mallory@example.org>" imported
gpg: key 39499BDB: public key "Piotr Kuczynski <piotr.kuczynski@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 3
gpg:               imported: 3  (RSA: 3)

(2) RVM 안정화 버전 설치
[redmine@5a067717ed9e redmine-4.0.2]$ curl -sSL https://get.rvm.io | bash -s stable --ruby
Downloading https://github.com/rvm/rvm/archive/1.29.7.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.7/1.29.7.tar.gz.asc
gpg: Signature made Thu 03 Jan 2019 10:01:48 PM UTC using RSA key ID 39499BDB
gpg: Good signature from "Piotr Kuczynski <piotr.kuczynski@gmail.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 7D2B AF1C F37B 13E2 069D  6956 105B D0E7 3949 9BDB
GPG verified '/home/redmine/.rvm/archives/rvm-1.29.7.tgz'
Installing RVM to /home/redmine/.rvm/
    Adding rvm PATH line to /home/redmine/.profile /home/redmine/.mkshrc /home/redmine/.bashrc /home/redmine/.zshrc.
    Adding rvm loading line to /home/redmine/.profile /home/redmine/.bash_profile /home/redmine/.zlogin.
Installation of RVM in /home/redmine/.rvm/ is almost complete:
  * To start using RVM you need to run `source /home/redmine/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.



(3) Rails 설치
curl -sSL https://get.rvm.io | bash -s stable --rails

(4) vi ~/.bashrc
 마지막 라인에 아래를 추가
source /home/redmine/.rvm/scripts/rvm 

(5) 설치 확인
[root@crm ~]# rvm version
rvm 1.29.7 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

2. ruby install
(1) rvm으로 ruby 설치하기
rvm install ruby
사용자계정으로 설치 시 sudo 권한이 필요하여 패스워드 입력을 요구한다.
[redmine@5a067717ed9e ~]$ rvm install ruby
Searching for binary rubies, this might take some time.
No binary rubies available for: centos/6/x86_64/ruby-2.6.0.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for centos.
Installing requirements for centos.
Installing required packages: patch, autoconf, automake, bison, gcc-c++, libffi-devel, libtool, patch, readline-devel, sqlite-devel, zlib-devel, glibc-headers, glibc-devel, 
openssl-devel.redmine password required for 'yum install -y patch autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel zlib-devel glibc-headers glibc-devel openssl-devel':
.............................
Requirements installation successful.
-bash: /home/redmine/.rvm/scripts/functions/manage/install/centos: No such file or directory
Installing Ruby from source to: /home/redmine/.rvm/rubies/ruby-2.6.0, this may take a while depending on your cpu(s)...
ruby-2.6.0 - #downloading ruby-2.6.0, this may take a while depending on your connection...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13.9M  100 13.9M    0     0  7399k      0  0:00:01  0:00:01 --:--:-- 8869k
ruby-2.6.0 - #extracting ruby-2.6.0 to /home/redmine/.rvm/src/ruby-2.6.0.....
ruby-2.6.0 - #configuring......................................................................
ruby-2.6.0 - #post-configuration..
ruby-2.6.0 - #compiling...........................................................................................................................
ruby-2.6.0 - #installing...............................
ruby-2.6.0 - #making binaries executable..
Installed rubygems 3.0.1 is newer than 2.7.9 provided with installed ruby, skipping installation, use --force to force installation.
ruby-2.6.0 - #gemset created /home/redmine/.rvm/gems/ruby-2.6.0@global

ruby-2.6.0 - #importing gemset /home/redmine/.rvm/gemsets/global.gems................................................................
ruby-2.6.0 - #generating global wrappers.......

ruby-2.6.0 - #gemset created /home/redmine/.rvm/gems/ruby-2.6.0
ruby-2.6.0 - #importing gemsetfile /home/redmine/.rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.6.0 - #generating default wrappers.......

ruby-2.6.0 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.6.0 - #complete
Ruby was built without documentation, to build it run: rvm docs generate-ri
Error running 'requirements_centos_libs_install patch autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel zlib-devel glibc-headers glibc-devel openssl-devel',
please read /home/redmine/.rvm/log/1552008743_ruby-2.6.0/package_install_patch_autoconf_automake_bison_gcc-c++_libffi-devel_libtool_patch_readline-devel_sqlite-devel_zlib-devel_glibc-headers_glibc-devel_openssl-devel.log
Requirements installation failed with status: 1.
cf) 만약 위와 같은 에러가 나왔을때 에러로그를 확인하여 사용자 계정에 sudo 실행 권한이 없다고 나온다면 root 계정으로 들어가서 vi /etc/sudoers에다 redmine 계정에 커맨드 실행 권한을 한줄 추가해준다.
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
redmine ALL=(ALL)       ALL
그 후 rvm 인스톨을 진행하면 현재 최신 버전인 2.6 이 설치가 된다.
[root@e3f23687c1ab ~]# ruby -v
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]

루비를 설치하고 나니 gem 도 설치되어 있는 것을 확인할 수 있다.
[redmine@5a067717ed9e ~]$ gem -v
3.0.1
cf) ruby 문서 설치
rvm docs generate-ri