一. 安裝docker
# curl -fsSL https://get.docker.com/ | sh
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl restart docker
安裝compose(可不安裝)
# curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
二. 下載myslq5.7鏡像
# docker pull mysql/mysql-server:5.7
啟動一個mysql容器拷貝文件到本地所需映射目錄
# docker run --name=mysql5.7 -p 3306:3306 -p 33060:33060 -d mysql/mysql-server:5.7
#查看mysql默認密碼
# docker logs mysql5.7 | grep "ROOT PASSWORD"
[Entrypoint] GENERATED ROOT PASSWORD: QUhALEPVYnUbekekIs@JbyLPeHaw
修改mysql默認密碼,最好搞個復雜的密碼
# docker exec -it mysql5.7 mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '!QAZ2wsx';
mysql> flush privileges;
# docker exec -it mysql5.7 mysql -uroot -p
更改“mysql”數據庫里的“user”表里的“host”項,從”localhost”改為'%'。
mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> select host from user where user='root';
mysql> select host,user from user where user='root';
創建confluenc 數據庫
mysql> create database confluence character set utf8 collate utf8_bin;
創建mysql本地映射目錄
# mkdir -p /logs/mysql && mkdir -p /data/mysql
拷貝容器中mysql配置文件
# docker cp mysql5.7:/etc/my.cnf /etc/my.cnf
修改my.cnf 如下:
# cat /etc/my.cnf
# For advice on how to change settings please see
# # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
bind-address=0.0.0.0
tmp-table-size = 256M
max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
tmp-table-size = 256M
max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 5000
thread-cache-size = 100
open-files-limit = 65535
table-definition-cache = 4096
table-open-cache = 1024
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-log-file-size = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table = 1
#innodb-buffer-pool-size = 4G
innodb-buffer-pool-size = 2G
innodb_thread_concurrency = 48
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
myisam_max_sort_file_size = 1G
key-buffer-size = 1G
myisam_sort_buffer_size = 64M
key_buffer_size = 2048M
read_buffer_size = 8M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
max_allowed_packet = 50M
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
查看mysql默認數據存儲路徑
# docker inspect mysql5.7 | grep data
"Source": "/var/lib/docker/volumes/16f33b7b861ae59470b5d3dac1f7dfa6c1812b4e1ff718de7e419ac040fed8a7/_data",
拷貝容器存儲數據到本地目錄
# cp -rf /var/lib/docker/volumes/16f33b7b861ae59470b5d3dac1f7dfa6c1812b4e1ff718de7e419ac040fed8a7/_data/* /data/mysql/
本地創建mysql用戶,用於授權目錄
# useradd -s /sbin/nologin mysql
目錄授權
# touch /logs/mysql/mysqld.log
# chown mysql.mysql /logs/mysql/ -R ;chmod 777 /logs/mysql/ -R
# chown mysql.mysql /data/mysql/ -R
停止mysql5.7容器
# docker stop mysql5.7
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d0029c8263d mysql/mysql-server:5.7 "/entrypoint.sh mysq…" 4 minutes ago Exited (0) 9 seconds ago mysql5.7
刪除原來啟動的mysql容器
# docker rm 9d0029c8263d
啟動新的mysql5.7容器
# docker run --name=mysql5.7 -p 3306:3306 -p 33060:33060 -v /etc/my.cnf:/etc/my.cnf -v /logs/mysql/:/var/log/ -v /data/mysql/:/var/lib/mysql/ -d mysql/mysql-server:5.7
查看啟動狀態
# docker logs --tail 10 -f mysql5.7
[Entrypoint] MySQL Docker Image 5.7.25-1.1.10
[Entrypoint] Starting MySQL 5.7.25-1.1.10
修改mysql數據庫隔離級別,防止連接數據庫出錯
Confluence設置MySQL數據庫報錯:必須使用'READ-COMMITTED'作為默認隔離級別。
解決方案:注意重啟數據庫后需要再次執行以下命令。
mysql> SET GLOBAL tx_isolation='READ-COMMITTED';
mysql> flush privileges;
三. 下載confluenc 鏡像文件
# docker pull cptactionhank/atlassian-confluence
啟動confluence並連接到mysql5.7
# docker run -d --name confluence -p 8090:8090 -p 8091:8091 --link mysql5.7:db --user root:root cptactionhank/atlassian-confluence:latest
查看Confluence 啟動狀態
# docker ps
# docker inspect confluence
獲取授權碼(需要用到google郵箱)
然后繼續訪問http://ip:8090,接着注冊confluence的key 參考連接:https://my.oschina.net/u/2289161/blog/1648587
輸入連接字符串: jdbc:mysql://db:3306/confluence?useUnicode=true&characterEncoding=UTF8&useSSL=false
四. 破解Confluence到期時間
用下載的文件替換
atlassian-extras-decoder-v2-3.x.jar
atlassian-universal-plugin-manager-plugin-2.22.x.jar文件
注意(該文件下載到/opt下,替換前必須做之前的文件備份,方便回退)
進入confluence容器命令:
# docker exec -it confluence /bin/sh
#mv /opt/atlassian/confluence/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.4.1.jar /mnt/
#mv /opt/atlassian/confluence/confluence/WEB-INF/atlassian-bundled-plugins/atlassian-universal-plugin-manager-plugin-3.0.jar /mnt/
備份好文件后,退出confluence容器。拷貝下載的文件到confluence容器中。
#將下載的破解文件替換對應的jar
#docker cp atlassian-extras-decoder-v2-3.2.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/lib/
#docker cp atlassian-universal-plugin-manager-plugin-2.22.jar confluence:/opt/atlassian/confluence/confluence/WEB-INF/atlassian-bundled-plugins/
重新啟動confluence容器
# docker restart confluenc
參考連接:https://my.oschina.net/u/2289161/blog/1648587