使用Docker快速部署各类服务

一键安装Docker

#Centos环境
wget -O- https://gitee.com/iubest/dinstall/raw/master/install.sh |sh

快速部署Mysql

docker run -d  -p 3306:3306 --restart=always --name=mysql5.7 \
-e MYSQL_ROOT_PASSWORD=1qaz@WSX \
-e MYSQL_DATABASE=testdb \
-e TZ=Asia/Shanghai mysql:5.7 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

快速部署DB2

#部署
docker run -itd --name mydb2 --privileged=true -p 55000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=1qaz@WSX -e DBNAME=testdb -v /root/db2:/database ibmcom/db2
#访问
docker exec -ti mydb2 bash -c "su - db2inst1"
db2 connect to testdb
#连接信息
db2inst1 testdb 55000 1qaz@WSX

快速部署ES

#配置环境
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
grep "vm.max_map_count" /etc/sysctl.conf
sysctl -p
docker run -d -v /home/es/data:/usr/share/elasticsearch/data -v /home/es/logs:/usr/share/elasticsearch/logs -p 9200:9200 --name='es' elasticsearch:6.4.2
#第一次无法启动,需要授权
chmod -R 777 /home/es
docker start es

快速部署Jenkins

使用官方镜像

docker run \
-u root \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v /opt/jenkins-data:/var/jenkins_home \
--name myjenkins\
jenkinsci/blueocean

使用自定义镜像

docker run \
-u root \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v /opt/jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--name myjenkins\
registry.cn-shanghai.aliyuncs.com/tzwind/jenkins/goodjenkins
#cat /opt/jenkins-data/secrets/initialAdminPassword

快速部署Gitlab中文版

#创建数据目录,需要挂载到docker
mkdir -p /data/gitlab/etc
mkdir -p /data/gitlab/log
mkdir -p /data/gitlab/data #下载和运行镜像
docker run \
--detach \
--publish 8443:443 \
--publish 8080:80 \
--name gitlab \
--restart unless-stopped \
--volume /data/gitlab/etc:/etc/gitlab \
--volume /data/gitlab/log:/var/log/gitlab \
--volume /data/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:10.7.5-ce.0 #访问(用户名root)
http://ip:8080

快速部署Artifactory

#创建数据目录:
mkdir -p /home/wind/artifactory6_data #给目录加权限:
chmod -R 777 /home/wind/artifactory6_data #使用官方镜像启动:
docker run --name artifactory -d --restart=always \
-v /home/wind/artifactory6_data:/var/opt/jfrog/artifactory \
-p 8081:8081 docker.bintray.io/jfrog/artifactory-oss:6.9.0 #使用个人镜像启动(推荐):
docker run --name artifactory -d --restart=always \
-v /home/wind/artifactory6_data:/var/opt/jfrog/artifactory \
-p 8081:8081 limitless-docker.pkg.coding.net/easyblog/wind/artifactory-oss:6.9.0

快速部署Zabbix

启动一个空的Mysql服务器实例

docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin

启动Zabbix server实例,并关联

docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

启动Zabbix web,并关联

docker run --name zabbix-web-nginx-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 8080:80 \
-d zabbix/zabbix-web-nginx-mysql:latest
访问你的IP:8080
帐号密码:Admin/zabbix

快速部署Flink

#启动临时容器
docker run -itd --rm --name=temp -h flink-jm flink:1.11-scala_2.11-java8 jobmanager
#复制配置文件到本地
docker cp temp:/opt/flink/conf /tmp/flink_docker
#删除临时容器
docker stop temp
#创建虚拟网桥
docker network create flinknet
#启动flink job
docker run -itd --name flink-jm -h flink-jm -p 8090:8081 -v /tmp/flink_docker/conf:/opt/flink/conf --network flinknet flink:1.11-scala_2.11-java8 jobmanager
#启动flink task ro参数表示只读,必须有
docker run -itd --name flink-tm -h flink-tm -v /tmp/flink_docker/conf:/opt/flink/conf:ro --network flinknet flink:1.11-scala_2.11-java8 taskmanager

Docker-compose

安装Docker-compose

#方法1:
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#查看版本
docker-compose --version
#docker-compose version 1.27.4, build 40524192 #方法2:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
yum -y install docker-compose
#查看版本
docker-compose --version
#docker-compose version 1.18.0, build 8dd22a9

快速部署个人博客

cat <<EOF> deploy.yaml
version: '3'
services:
mysql:
container_name: mymysql
image: mysql:5.7
command: [ #使用 command 可以覆盖容器启动后默认执行的命令,必须在environment前面。
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci',
]
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_ROOT_HOST: '%'
MYSQL_DATABASE: halodb
TZ: Asia/Shanghai
ports:
- "3306:3306"
volumes:
- ./mysql_data:/var/lib/mysql
restart: always app:
container_name: myapp
image: limitless-docker.pkg.coding.net/easyblog/wind/haloblog:ok
restart: always
ports:
- "80:8090"
depends_on:
- mysql
EOF
#启动
docker-compose -f deploy.yaml up -d

快速部署Gitlib中文版

cat > deploy-gitlab.yaml << 'EOF'
version: '3'
services:
web:
image: 'twang2218/gitlab-ce-zh:10.5'
restart: always
hostname: '192.168.75.145'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.75.145:8080'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
unicorn['port'] = 8888
nginx['listen_port'] = 8080
ports:
- '8080:8080'
- '8443:443'
- '2222:22'
volumes:
- /usr/local/docker/gitlab/config:/etc/gitlab
- /usr/local/docker/gitlab/data:/var/opt/gitlab
- /usr/local/docker/gitlab/logs:/var/log/gitlab
EOF
docker-compose -f deploy-gitlab.yaml up -d

小技巧

Docker启动时如何初始化

#初始化脚本
#!/bin/bash
set -e
set -u
if [[ -z "$(ls -A /srv/docs)" ]]; then
echo 'Initializing new docs'
cp -R /srv-init/* /srv/docs
cp -R /srv-init/.vuepress /srv/docs/
fi
cd /srv/docs
yarn docs:$@
cat >Dockerfile<< EOF
FROM node
LABEL maintainer="Thomas de Saint"
COPY package.json yarn.lock /srv/
WORKDIR /srv
RUN yarn
COPY docs /srv-init/
COPY entrypoint.sh /
ENTRYPOINT ["/entrypoint.sh"]
CMD ["dev"]
EOF
docker build -t tstex/vuepress .

两个容器加入同一网络

#查看docker中的网络
docker network ls
#查看bridge网络的详细配置
docker network inspect bridge
#创建用户自定义bridge:
docker network create my-net # 创建了一个名为"my-net"的网络
#将Web服务容器和mysql服务容器加入到"my-net"中
docker network connect my-net test_demo # 将Web服务加入my-net网络中
docker network connect my-net mysqld5.7 # 将mysql服务加入my-net网络中
#查看my-net的网络配置
docker network inspect my-net
#断开旧网络
docker network disconnect bridge test_demo
docker network disconnect bridge mysqld5.7

Docker中使用systemctl

#需要启动参数--privileged  init
docker run -itd --name mycentos --privileged centos init

命令行查看docker tag

yum install jq
#apt install jq #jq源码安装
#cd /usr/local/src
#wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz
#tar zxvf jq-1.5.tar.gz
#cd jq-1.5
#./configure
#make && make install
#测试
#echo '{"yjt":"boy","age":20}' |jq cd /bin
vi docker-tag
#!/bin/sh
repo_url=https://registry.hub.docker.com/v1/repositories
image_name=$1
#curl -s ${repo_url}/${image_name}/tags | json_reformat | grep name | awk '{print $2}' | sed -e 's/"//g'
curl -s ${repo_url}/${image_name}/tags | jq . | grep name | awk '{print $2}' | sed -e 's/"//g' #添加执行权限
chmod +x docker-tag #查看mysql所有tag
docker-tag mysql

使用Docker快速部署各类服务的更多相关文章

  1. 如何利用 docker 快速部署 Mysql 服务

    docker 基础教程不再多说,这里只着重讲如何使用 docker 部署 mysql 服务 docker 拉取 访问 dockerhub,搜索关键词 mysql,我这里选择 mysql-server, ...

  2. 私活利器,docker快速部署node.js应用

    http://cnodejs.org/topic/53f494d9bbdaa79d519c9a4a 最近研究了几天docker的快速部署,感觉很有新意,非常轻量级和方便,打算在公司推广一下,解放运维, ...

  3. 使用Docker快速部署ELK分析Nginx日志实践

    原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...

  4. 在docker里部署网络服务

    之前试着玩玩docker有一阵子了,今天算是头一回正式在docker里部署网络服务. 本来想和lxc差不多的东西那自然是手到擒来,没想到还是改了很多. 第一个遇到的问题是,远程连到docker宿主机干 ...

  5. 使用Docker快速部署ELK分析Nginx日志实践(二)

    Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...

  6. 快速部署ldap服务

    快速部署ldap服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LDAP概述 .什么是目录服务 ()目录是一类为了浏览和搜索数据二十几的特殊的数据库,例如:最知名的的微软公 ...

  7. 利用Docker快速部署Mysql

    写在前面 我又来更新了~~~,今天内容较少,主要是利用Docker快速部署Mysql和初始化数据 利用Docker下载Mysql 简洁明了,在命令提示符中输入 docker pull mysql:8. ...

  8. docker 快速部署ES集群 spark集群

    1) 拉下来 ES集群  spark集群 两套快速部署环境, 并只用docker跑起来,并保存到私库. 2)弄清楚怎么样打包 linux镜像(或者说制作). 3)试着改一下,让它们跑在集群里面. 4) ...

  9. docker快速部署DNS,实现快速上线

    概念Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.这里我将使用do ...

随机推荐

  1. DP百题练(二)

    目录 DP百题练(二) 区间 DP NOI1995 石子合并 IOI1998 Polygon CH5302 金字塔 USACO06FEB Treats for the Cows G/S LG1043 ...

  2. 一个.NET Core下的开源插件框架

    插件模式历史悠久,各种中大型软件基本上都会实现插件机制,以此支持功能扩展,从开发部署层面,插件机制也可实现功能解耦,对于并行开发.项目部署.功能定制等都有比较大的优势. 在.NET Core下,一般我 ...

  3. python求平均数及打印出低于平均数的值列表

    刚学Python的时候还是要多动手进行一些小程序的编写,要持续不断的进行,知识才能掌握的牢.今天就讲一下Python怎么求平均数,及打印出低于平均数的数值列表 方法一: scores1 =  [91, ...

  4. 记EF的一个基本访问类

    代码: 1 using EFModel; 2 using System; 3 using System.Collections.Generic; 4 using System.Data.Entity; ...

  5. Elasticsearch原理解析与性能调优

    基本概念 定义 一个分布式的实时文档存储,每个字段 可以被索引与搜索 一个分布式实时分析搜索引擎 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据 用途 全文检索 结构化搜索 分 ...

  6. UGC

    文章目录    4 UGC推荐        4.1 基于用户UGC标签进行推荐            4.1.1 最简单的算法(SimpleTagBased)            4.1.2 利用 ...

  7. Manacher (马拉车) 算法:解决最长回文子串的利器

    最长回文子串 回文串就是原串和反转字符串相同的字符串.比如 aba,acca.前一个是奇数长度的回文串,后一个是偶数长度的回文串. 最长回文子串就是一个字符串的所有子串中,是回文串且长度最长的子串. ...

  8. 分布式流平台Kafka

    提到Kafka很多人的第一印象就是它是一个消息系统,但Kafka发展至今,它的定位已远不止于此,而是一个分布式流处理平台.对于一个流处理平台通常具有三个关键能力: 1. 发布和订阅消息流,在这一点上它 ...

  9. Gromacs命令-Chapter1

    Gromacs的命令非常多,下面我将我最近用到的先总结一下.标题上也写了这只是Chapter1,以后有新的会继续写Chapter2...等等. 下面这个网址http://manual.gromacs. ...

  10. http代理阅读2

    向上游服务器发送请求处理 static void ngx_http_upstream_send_request(ngx_http_request_t *r, ngx_http_upstream_t * ...