使用Docker快速部署各类服务
使用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快速部署各类服务的更多相关文章
- 如何利用 docker 快速部署 Mysql 服务
docker 基础教程不再多说,这里只着重讲如何使用 docker 部署 mysql 服务 docker 拉取 访问 dockerhub,搜索关键词 mysql,我这里选择 mysql-server, ...
- 私活利器,docker快速部署node.js应用
http://cnodejs.org/topic/53f494d9bbdaa79d519c9a4a 最近研究了几天docker的快速部署,感觉很有新意,非常轻量级和方便,打算在公司推广一下,解放运维, ...
- 使用Docker快速部署ELK分析Nginx日志实践
原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...
- 在docker里部署网络服务
之前试着玩玩docker有一阵子了,今天算是头一回正式在docker里部署网络服务. 本来想和lxc差不多的东西那自然是手到擒来,没想到还是改了很多. 第一个遇到的问题是,远程连到docker宿主机干 ...
- 使用Docker快速部署ELK分析Nginx日志实践(二)
Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...
- 快速部署ldap服务
快速部署ldap服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LDAP概述 .什么是目录服务 ()目录是一类为了浏览和搜索数据二十几的特殊的数据库,例如:最知名的的微软公 ...
- 利用Docker快速部署Mysql
写在前面 我又来更新了~~~,今天内容较少,主要是利用Docker快速部署Mysql和初始化数据 利用Docker下载Mysql 简洁明了,在命令提示符中输入 docker pull mysql:8. ...
- docker 快速部署ES集群 spark集群
1) 拉下来 ES集群 spark集群 两套快速部署环境, 并只用docker跑起来,并保存到私库. 2)弄清楚怎么样打包 linux镜像(或者说制作). 3)试着改一下,让它们跑在集群里面. 4) ...
- docker快速部署DNS,实现快速上线
概念Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.这里我将使用do ...
随机推荐
- (模板)graham扫描法、andrew算法求凸包
凸包算法讲解:Click Here 题目链接:https://vjudge.net/problem/POJ-1113 题意:简化下题意即求凸包的周长+2×PI×r. 思路:用graham求凸包,模板是 ...
- 3.2 表 ADT -3.3 Java Collection API 中的表
3.2 表 ADT 处理形如 A0, A1, A2, --, AN-1 的一般的表.我们称这个表大小为N.将大小为0的特殊表称为空表 对于除空表以外的任何表,称 Ai-1 前驱 Ai,Ai 后继 Ai ...
- 关于保存批量数据进入mysql
提出的要求: 生成13位纯数字的卡号与8位纯数字的卡密,要求卡号与卡密都必须全表唯一,然后保存到mysql. 思路: 1.首先mysql中将这两个字段设置唯一索引,保证这两个字段的值在该表中是唯一存在 ...
- PHP直播平台源码搭建教程
直播源码市场火爆,但是PHP直播平台源码的搭建过程较为复杂,本文就简单为大家概述一下直播的实现过程以及PHP直播平台源码是如何搭建的. 一.直播的定义 如今PHP直播平台源码绝大部分情况下是指在现场架 ...
- NoSQL数据库的四大分类的分析
分类 Examples举例 典型应用场景 数据模型 优点 缺点 键值(key-value) Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 内容缓 ...
- Windows窗口置顶工具 简简单单 - 快快乐乐
Windows窗口置顶工具 简简单单 - 快快乐乐 JERRY_Z. ~ 2020 / 11 / 12 转载请注明出处!️ 目录 Windows窗口置顶工具 简简单单 - 快快乐乐 一.官网下载Des ...
- TODO_LIST
H5 blog: http://html5doctor.com/designing-a-blog-with-html5/ 绝尘单词本----H5+Web NIO+netty+RPC
- 前端性能优化之 gzip+cache-control
刚刚在Node.js环境下使用gzippo模块进行了测试. 使用gzip的压缩率惊人的好,达到了50%以上. 再加上express的staticCache,配合cache-control max-ag ...
- 我画着图,FluentAPI 她自己就生成了
在 Newbe.ObjectVistor 0.3 版本中我们非常兴奋的引入了一个紧张刺激的新特性:使用状态图来生成任意给定的 FluentAPI 设计. 开篇摘要 在非常多优秀的框架中都存在一部分 F ...
- 92. Reverse Linked List II 翻转链表II
Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...