bingoogolapple.github.io
bingoogolapple.github.io copied to clipboard
开源镜像学习笔记
安装 Docker
- 安装 docker
yum update
curl -fsSL https://get.docker.com/ | sh
- 启动 docker
systemctl start docker
- 查看是否为启动状态
systemctl status docker
- 开机自启动
systemctl enable docker
配置国内镜像
- mkdir -p /etc/docker && vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
systemctl daemon-reload
systemctl restart docker
安装 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
chmod +x /usr/local/bin/docker-compose
安装 ShadowSocks
- 启动容器
docker run -d -m 192M -p 8003:8003 -p 6660-6680:6660-6680 --name bga-ss bingoogolapple/bga-ss:v3
- /opt/nginx/conf/vhost/kexueshangwang.bingoogolapple.cn.conf
upstream kexueshangwang {
server 127.0.0.1:8003;
ip_hash;
}
server {
listen 80;
server_name kexueshangwang.bingoogolapple.cn;
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://kexueshangwang;
proxy_read_timeout 90;
}
}
GitLab
http://blog.gezhiqiang.com/2017/03/01/gitlab-ce-install/ https://cloud.tencent.com/developer/article/1010595 https://segmentfault.com/a/1190000012279248
启动新的容器
docker run --detach -m 2048M --hostname gitlab.bingoogolapple.cn --env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.bingoogolapple.cn:9080';nginx['listen_port'] = 80;gitlab_rails['gitlab_ssh_host'] = 'gitlab.bingoogolapple.cn';gitlab_rails['gitlab_shell_ssh_port'] = 9022;unicorn['worker_processes'] = 2;postgresql['shared_buffers'] = '128MB';postgresql['max_worker_processes'] = 4;sidekiq['concurrency'] = 12;" --publish 9080:80 --publish 9022:22 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
/opt/nginx/conf/vhost/gitlab.bingoogolapple.cn.conf
upstream gitlab {
server 127.0.0.1:9080;
ip_hash;
}
server {
listen 80;
server_name gitlab.bingoogolapple.cn;
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://gitlab;
proxy_read_timeout 90;
}
}
~/.ssh/config
Host gitlab.bingoogolapple.cn
User bingoogolapple
Hostname gitlab.bingoogolapple.cn
IdentityFile ~/.ssh/bga_rsa
代理 ssh(这一步不用配置)
stream {
upstream ssh_gitlab {
server 127.0.0.1:9022;
}
server {
listen 9023;
proxy_connect_timeout 20s;
proxy_pass ssh_gitlab;
}
}
GitLab Runner
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
https://scarletsky.github.io/2016/07/29/use-gitlab-ci-for-continuous-integration/ http://blog.gezhiqiang.com/2017/03/01/gitlab-runner-install/
Jenkins
Master 节点
- 启动 master 节点容器
docker run -d -m 1024M --name jenkins-master -v jenkins-master-home:/var/jenkins_home -p 8010:8080 -p 50010:50000 jenkins/jenkins:lts
- /opt/nginx/conf/vhost/ci.bingoogolapple.cn.conf
upstream ci {
server 127.0.0.1:8010;
ip_hash;
}
server {
listen 80;
server_name ci.bingoogolapple.cn;
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://ci;
proxy_read_timeout 90;
}
}
jnlp-slave 节点
- 启动 jenkins-slave1 节点容器
docker run -d -m 128M --name jenkins-slave1 --env JENKINS_AGENT_WORKDIR=/home/jenkins/agent --env JENKINS_URL=http://ci.bingoogolapple.cn --env JENKINS_TUNNEL=ci.bingoogolapple.cn:50010 --env JENKINS_SECRET=f6c4ac8e64f986d363ca732fc7e0da9e7bf7ec1b75e65d2af7900787e4596f62 --env JENKINS_AGENT_NAME=jenkins-slave1 jenkins/jnlp-slave
ssh-slave 节点
- 生成公钥和私钥
ssh-keygen -t rsa -b 4096 -C "[email protected]"
-
链接从节点时用户名需要叫 jenkins
-
启动 jenkins-slave2 节点
docker run -d -m 128M --name jenkins-slave2 --env JENKINS_SLAVE_SSH_PUBKEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDQ3CC4T39fIq5enWEw2Zj1oO7BKAEIe1kgg+MXl12eqXpwwsp5En3w52RwoKIhqlv2XMYVTNsUpFSEpKm8yo4p2TABcPPq4tsatNTyMg19jNyJ1oKEH+HSJzj4MAS32HM0snWJ+jopj19ax8+ExJXa4b9hTuLhYtgT21kgpn7NE3k8T7ay0pprJZ/Yx5samE2hnzi1XMbuXbhIWgaJSyP4QGEQqcFQxH2bIy5p+bSfjE8BlItVz8iE+qsre6m0aJhnVGp0Sf2aXKuceLutAXM60rKrj0neZF0URDWT1bSR464SybpxLSfnbbmlsbzov/ERS3EvizhIe0DioKWyrPV8vpWPT1c5RfB0It62A5Zet4zRv4NY2HbaMEQUaB8HxIE140+p5rYjMRXOP/OhMQlYckac0BGzq3s4BfYPf3WdrZfQVslOC8bWOw6x0zAEuseGTK5Lfpz57cXW1qfUkU/utDsuRErbMCVsz/f1eqYpAs7u5M1lBfPh43Ckxu8kSD7XwqwMW76JijQYSBF1EusyPklD0CO0WSGm+/1bZdRF9FOVCXFBBHQcEP1Kvf/Rm0PYE7Hk3AqmJcYGxbWB6AGQpcSCOzTxAoGJq/LOhbvY+2oDCaaMPKyf45DhR6MOiXh25is9QJP8q8gKgd6fMRxf5tnyUSe8DDc8ZyqB+wXecw== [email protected]" jenkinsci/ssh-slave
- 停止并销毁测试容器
docker stop jenkins-master jenkins-slave1 jenkins-slave2 && docker rm jenkins-master jenkins-slave1 jenkins-slave2 && docker volume rm jenkins-master-home
MySQL
- docker run -d -p 3306:3306 --name as_mysql -v ~/Desktop/DockerData/mysql:/var/lib/mysql -v ~/Desktop/DockerData/attendance_sys.sql:/attendance_sys.sql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=attendance_sys mysql:5.7.16 --lower-case-table-names=1
导出 attendance_sys 数据库
docker exec as_mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > ~/Desktop/DockerData/all-databases.sql
导出 attendance_sys 数据库
docker exec as_mysql sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" attendance_sys' > ~/Desktop/DockerData/attendance_sys.sql
恢复 attendance_sys 数据库
docker exec -it as_mysql bash
mysql -u root -p$MYSQL_ROOT_PASSWORD
use attendance_sys;
source /attendance_sys.sql;