全栈工程师开发手册 (作者:栾鹏)
架构系列文章


docker安装mysql

docker search mysql         搜索
docker pull mysql:5.6       下载
docker images |grep mysql   查看
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin -d mysql:5.7   运行命令说明:-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。docker ps   查看镜像的运行运行后进入容器进行初始化
# mysql -u root -p
# create database note;

docker安装redis

docker search  redis     搜索
docker pull  redis:3.2   下载
docker images redis      查看
docker run -p 6379:6379 -v $PWD/data:/data  -d redis:3.2 redis-server --appendonly yes    运行命令说明:-p 6379:6379 : 将容器的6379端口映射到主机的6379端口-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的/dataredis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置docker ps   查看运行情况

docker 安装postgres

docker run --name postgres1 -e POSTGRES_PASSWORD=admin -p 5432:5432 -d postgres:latest

解释:
run,创建并运行一个容器;
--name,指定创建的容器的名字;
-e POSTGRES_PASSWORD=admin,设置环境变量,指定数据库的登录密码为admin;
-p 54321:5432,端口映射将容器的5432端口映射到外部机器的54321端口;
-d postgres:latest,指定使用postgres:latest作为镜像。

注意:
postgres镜像默认的用户名为postgres,
登陆密码为创建容器是指定的值。

docker 部署 rancher

官网参考:https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/server-installation/single-node-install/

docker run -d --restart=unless-stopped -p 8001:80 -p 8002:443 -v /root/var/log/auditlog:/var/log/auditlog -e AUDIT_LEVEL=3 rancher/rancher:latest

在登录界面记得选择语言,使用汉化版的rancher

若要将k8s添加到rancher中,需要执行一个命令,这个在rancher中有提示。

docker 部署Portainer

Portainer为docker容器管理组件。

$ docker volume create portainer_data
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

然后在pc上访问127.0.0.1:9000就可以。进入后会让你添加docker的endpoint。先添加一个local的。就可以看到本地的容器和镜像了。

添加远程服务器的docker管理

在服务器上执行下面的命令。

记得将下面的HOST换成你自己的docker主机的hostname,不要通过设置变量实现。


生成CA公钥和私钥:
openssl genrsa -aes256 -out ca-key.pem 4096   # 生成CA私钥,会让你设置密码,记住你设置的密码
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem    #生成CA公钥,也就是证书   输入上面的密码,以及国家组织等信息,其中Common Name要设置成hostname
Common Name (e.g. server FQDN or YOUR name) []:$HOST现在我们有了CA,就可以创建服务器私钥和证书请求文件了
openssl genrsa -out server-key.pem 4096       # 生成服务器私钥openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr  # 用私钥生成证书请求文件现在,我们可以用CA来签署证书了。这里我们可以填写IP地址或则DNS name,如,我们需要允许服务器外网ip和服务器内网ip   172.16.0.230和127.0.0.1连接:
echo subjectAltName =IP:139.159.206.232,IP:172.16.0.230,IP:127.0.0.1 > extfile.cnf# 将Docker守护程序密钥的扩展使用属性设置为仅用于服务器身份验证:
$ echo extendedKeyUsage = serverAuth >> extfile.cnf
$ openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem  -CAcreateserial -out server-cert.pem -extfile extfile.cnf

在服务器上生成客户端证书:

$ openssl genrsa -out key.pem 4096      # 客户端私钥
$ openssl req -subj '/CN=client' -new -key key.pem -out client.csr      # 客户端证书请求文件用CA为客户端签署证书文件:# 要使密钥适配客户端身份验证,请创建扩展配置文件:
$ echo extendedKeyUsage = clientAuth >> extfile.cnf$ openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf

删除证书请求文件:

$ rm -v client.csr server.csr
默认的私钥权限太开放了,为了更加的安全,我们需要更改证书的权限,删除写入权限,限制阅读权限(只有你能查看):$ chmod -v 0400 ca-key.pem key.pem server-key.pem
证书文件删除其写入权限:$ chmod -v 0444 ca.pem server-cert.pem cert.pem

证书的部署:

我这里是ubunu系统

sudo vi /etc/default/docker如:DOCKER_OPTS="-D --tlsverify=true --tlscert=/var/docker/server-cert.pem --tlskey=/var/docker/server-key.pem --tlscacert=/var/docker/ca.pem  -H tcp://0.0.0.0:2376"
$ sudo service docker restart

下面使用客户端链接,需要

将ca.pem、cert.pem、key.pem文件下载到本地。
docker --tlsverify --tlscacert=./ca.pem \--tlscert=./cert.pem \--tlskey=./key.pem \-H=139.159.206.232:2376 version

可以在endpoint页面,创建一个入口点,设置url为139.159.206.232:2376,并添加ca.pem、cert.pem、key.pem三个文件。

参考:https://docs.docker.com/engine/security/https/#secure-by-default

docker 部署蝉道

docker run --name zentao -it --restart always -v /home/lp/docker/zentao/zbox:/opt/zbox -p 11111:80 haha123/zentao

账号密码: admin/123456

进入后会提醒修改账号密码

docker 安装JIRA

1.pull docker 镜像: jira:latest(目前的最新版本) mysql:5.7
版本信息可以参考:https://hub.docker.com/r/cptactionhank/atlassian-jira-software/tags

docker pull cptactionhank/atlassian-jira-software
docker pull mysql:5.7

2.启动mysql docker实例

docker run --name atlassian-mysql --restart always -p 3306:3306 -v /opt/mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 #记得修改passwd

3.连接mysql

docker run -it --link atlassian-mysql:mysql --rm mysql:5.7 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

4.创建jira数据库,并添加jira用户 【mysql操作台执行】

create database jira default character set utf8 collate utf8_bin;
CREATE USER `jira`@`%` IDENTIFIED BY 'jira';GRANT ALL ON *.* TO `jira`@`%` WITH GRANT OPTION;
alter user 'jira'@'%' identified with mysql_native_password by 'jira';

5.修改mysql事物隔离级别 【mysql操作台执行】

set global transaction isolation level read committed;
set session transaction isolation level read committed;

6.启动jira实例

docker run --detach --restart always -v /data/atlassian/confluence:/home --publish 8080:8080 cptactionhank/atlassian-jira-software

7.访问:192.168.x.x:8080 进行jira配置。配置过程略。配置完成如下图:

http://192.168.x.x:8080/secure/WelcomeToJIRA.jspa

sonarqube

部署服务端

docker run --name sonar -e SONARQUBE_JDBC_USERNAME=root -e SONARQUBE_JDBC_PASSWORD=admin -e SONARQUBE_JDBC_URL='jdbc:mysql://192.168.11.127:30369/sonar?useUnicode=true&characterEncoding=utf8' -p 9000:9000 sonarqube:6.7.5

第一次登录会让设置账户,进而生成一个token,这个token是客户端访问的凭证。

下载sonar-scanner :http://redirect.sonarsource.com/doc/install-configure-scanner.html

在项目文件夹下执行

sonar-scanner   -Dsonar.projectKey=test   -Dsonar.sources=.   -Dsonar.host.url=http://127.0.0.1:9000   -Dsonar.login=6a14734cf871e3ed2d694bbb71dc8fd0b9193d8b

其中Dsonar.host.url为服务端地址,Dsonar.login为登录生成的token,这样就能在客户端检查代码,将结果发送到服务端了

安装Confluence

持久化可是使用mysql或者postgresql

docker run -d --name confluence -p 8090:8090  --link mysql5.7:db --user root:root cptactionhank/atlassian-confluence:latest
docker run -d --name confluence -p 8090:8090  --link postgresql:db --user root:root cptactionhank/atlassian-confluence:latest

可以参考:https://my.oschina.net/u/2289161/blog/1648587

安装pgadmin4

docker run --name pgadmin -e "PGADMIN_DEFAULT_EMAIL=user@domain.com" -e "PGADMIN_DEFAULT_PASSWORD=admin" -p 80:80 -p 443:443  -d dpage/pgadmin4

安装harbor,构建私有仓库

下载地址:https://github.com/goharbor/harbor/releases,安装harbor需要先安装docker-compose。

下载 harbor-offline-installer-v1.10.0.tgz

wget https://github.com/goharbor/harbor/releases/download/v1.10.0/harbor-offline-installer-v1.10.0.tgz
tar -xvf harbor-offline-installer-v1.10.0.tgz
cd harborvim harbor.yml
配置harbor配置文件:hostname = 192.168.0.104,不能配置localhost、127.0.0.1
harbor_admin_password = Harbor12345        harbor登陆密码certificate: /etc/certs/ca.crt
private_key: /etc/certs/ca.key# 创建自定义签名证书
mkdir /etc/certs
openssl genrsa -out /etc/certs/ca.key 2048
openssl req -x509 -new -nodes -key /etc/certs/ca.key -subj "/CN=192.168.0.104" -days 5000 -out /etc/certs/ca.crt./install.sh安装完成之后
ddocker-compose ps启动Harbor
# docker-compose start
停止Harbor
# docker-comose stop
重启Harbor
# docker-compose restart

默认账号密码: admin / Harbor12345 登录后修改密码
执行docker login 192.168.0.104
输入用户名admin/Harbor12345
Login Succeeded #显示此字段说明登录成功可以上传下载镜像

可以使用https或者http,建议选择https

(5)客户端配置
客户端需要创建证书文件存放的位置,并且把服务端创建的证书拷贝到该目录下,然后重启客户端docker

$ mkdir -p /etc/docker/certs.d/192.168.38.23

把服务端crt证书文件拷贝到客户端,这里的客户端为192.168.38.21

$ scp /etc/certs/ca.crt root@192.168.38.21:/etc/docker/certs.d/192.168.38.23/

重启客户端docker

$ systemctl restart docker

参考:https://www.cnblogs.com/pangguoping/p/7650014.html

部署nginx

docker run  --name nginx  -d -p 6800:80   -v /usr/docker/nginx/html:/usr/share/nginx/html -v /etc/docker/myNginx/nginx.conf:/etc/nginx/nginx.conf -v /etc/docker/myNginx/conf.d:/etc/nginx/conf.d  nginx:latest

docker安装常用组件(mysql,redis,postgres,rancher,Portainer,蝉道,JIRA,sonarqube,Confluence,pgadmin4,harbor)相关推荐

  1. Docker安装常用软件-Mysql

    一.生成镜像 方法一:通过Dockerfile 1.新建目录 mysql  D:\docker\docker应用池\mysql mysql目录下创建三个目录 /home/mysql /logs /co ...

  2. Docker安装常用软件/JAVA/大数据

    Docker安装常用软件 文章目录 Docker安装常用软件 一.Docker安装 1. Windows安装Docker Desktop 2. Centos安装Docker 二.大数据组件安装 1. ...

  3. 【docker11】docker安装常用软件

    目录 docker安装常用软件 1.安装软件说明 1.安装tomcat 2.安装mysql 2.1简单版 2.2实战版本 3.安装redis docker安装常用软件 1.安装软件说明 框架图 总体步 ...

  4. 四、docker系列之docker安装常用软件

    docker安装常用软件 目录 docker安装常用软件 docker安装运行redis 一.DockerHup redis仓库 二.镜像拉取 三.镜像启动 四.参数解析 docker安装运行mysq ...

  5. 腾讯云轻量应用服务器CentOS系统使用docker安装tomcat,MySQL 并发布SSM maven项目

    腾讯云轻量应用服务器CentOS系统使用docker安装tomcat,MySQL 并发布SSM maven项目(记录) 一.服务器修改密码(此时已安装CentOS系统) 二.防火墙添加规则 三.连接X ...

  6. Docker安装并使用Mysql(可用详细)

    Docker安装并使用Mysql 一.Docker安装Mysql 1.启动Docker 2.查询mysql 3.安装mysql 1.默认拉取最新版本mysql 2.拉取指定版本mysql_5.7 4. ...

  7. ubuntu系统下安装docker并部署Springboot+mysql+redis

    目录 安装Docker Docker常用命令 构建mysql容器 构建Redis容器 构建Springboot应用镜像及容器 (1)springboot使用maven将程序打成jar包,接着编写Dok ...

  8. Docker安装Tomcat、MySQL和Redis

    总体步骤 Docker安装Tomcat docker hub上查找tomcat镜像 docker search tomcat 从docker hub上拉取tomcat镜像到本地 docker pull ...

  9. Docker安装与部署MySQL等,迁移备份与Dockerfile和私有仓库

    1.Docker简介 1.1 什么是虚拟化 一种资源管理技术,实际用处一般用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件,对资源充分利用 ...

最新文章

  1. Facebook面经全披露,我是怎么拿到机器学习工程师offer的?
  2. 深度学习巨头Yoshua Bengio清华演讲: 深度学习通往人类水平人工智能的挑战
  3. proguaid 混淆代码
  4. mysql select 所有表_怎样用SQL语句查询一个数据库中的所有表
  5. 工作三年左右的Java程序员跟大家谈谈从业心得
  6. SMTP 队列邮件对照表
  7. 如何在Eclipse中显示行号
  8. python3开发工具推荐_python开发工具有哪些?我推荐这5款python开发工具!
  9. java中跳转页面的干法_java – 有没有一种干法来整合RowMappers的相同代码?
  10. [SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码...
  11. 201521123009 《Java程序设计》第1周学习总结
  12. 万能转换器boost::lexical_cast
  13. react native 之setState
  14. 双缝干涉实验,在双缝之后加一个反射,会怎样
  15. pydobc连接sql server_python – PyOdbc无法连接到SQL Server实例
  16. 易筋SpringBoot 2.1 | 第十二篇:SpringBoot综合应用DataSoure
  17. 代码整洁之道读书笔记----第三章---函数--第三节-函数结构的优化
  18. matlab心率和呼吸相关性分析,动态心电图的睡眠呼吸监测与心率变异性的相关性分析...
  19. DDNS设置(自用)
  20. How to learn Japanese ?

热门文章

  1. 联想17TV语音遥控教程 语音点播更方便
  2. 一种本地和云端相结合的语音识别系统及方法与流程
  3. 第T题 详解放苹果(递归) =========== 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
  4. 长度短点的uuid_UUID不失精度,长度改进
  5. html缓存效果代码,html5缓存(示例代码)
  6. SpringBoot 实现登录验证码(附集成SpringSecurity)
  7. 查看从库mysql同步错误日志_常见MySQL同步错误恢复方法
  8. 【JAVA笔记】线程(1):多线程的介绍和实现
  9. 【数据结构和算法笔记】c语言实现顺序表和链表
  10. 通过Stratus 服务器在Flash Player中使用RTMFP 开发P2P应用