网站首页 > 技术文章 正文
docker run增加如下参数,限制生成的json.log单个文件大小和保留文件个数:
--log-driver json-file --log-opt max-size=10m
--log-opt max-size=10m --log-opt max-file=3
1,tomcat
以下为云平台的前端执行:
docker run -d --name tomcatweb -e TZ="Asia/Shanghai" -p 8080:8080 \
-v /disk02/tomcat/web/webapps:/usr/local/tomcat/webapps \
-v /disk02/tomcat/web/logs:/usr/local/tomcat/logs \
-v /disk02/tomcat/web/temp:/usr/local/tomcat/temp --restart=always docker.io/tomcat:8.5.14
使 ubuntu系统,如果要更改内部配置,则使用 apt-get update/install 来安装软件;
sudo apt-get install vim-gtk
2,ftp
参考网址:https://hub.docker.com/r/stilliard/pure-ftpd/ http://www.cnblogs.com/HD/p/5664394.html
docker run -d --name ftpserver -p 21:21 -p 30000-30009:30000-30009 --restart=always -v /usr/local/tomcat/web/webapps:/srv/ftp stilliard/pure-ftpd
进入 image 中添加用户和密码:
docker exec -it ftpserver /bin/bash
添加用户和目录:
pure-pw useradd user01 -u ftpuser -d /srv/ftp
pure-pw mkdb
使用以下的软件vsftpd:
参照以下网址:https://github.com/AndrewVos/docker-proftpd
docker pull andrewvos/docker-proftpd
docker run --name vsftpd -p 21:21 -p 20:20 -e USERNAME=user01 -e PASSWORD=dongbao123 --restart=always -v /usr/local/tomcat/web/webapps:/ftp andrewvos/docker-proftpd
ftp -p localhost 21
Name (0.0.0.0:andrew): username
Password:
ftp> ls
另一种方案:
https://github.com/ruo91/docker-vsftpd
A,docker build --rm -t vsftpd:3.0.2 .
B,docker run -d --name="vsftpd" --restart=always -h "vsftpd” \ -p 21:21 -v /usr/local/tomcat/web/webapps:/home -v /usr/local/vsftpd/config:/etc/vsftpd/ -v /tmp:/tmp vsftpd:3.0.2
docker run -d --name="vsftpd" --restart=always -p 21:21 -v /usr/local/tomcat/web/webapps:/home -v /usr/local/vsftpd/config:/etc/vsftpd/ -v /tmp:/tmp vsftpd:3.0.2
C,创建用户 ROOT
docker exec vsftpd vsftpd_vuser.sh ROOT dongbao123
注意,在/usr/local/tomcat/web/webapps中创建了 ROOT 文件夹,以用户名来创建文件夹。
3,nginx安装:
优先参照官网文档:https://hub.docker.com/_/nginx/
https://github.com/hnakamur/docker-nginx-lua
https://hub.docker.com/_/nginx/
以下是正确的配置:
docker run -d --name nginx --restart=always -p 80:80 -p 443:443 -p 8888:8888 -v /disk02/tomcat/api/webapps:/usr/share/nginx/html -v /disk02/nginx/log:/var/log/nginx -e TZ="Asia/Shanghai" nginx:latest
docker run -d --name nginx -p 80:80 -p 443:443 -v /disk02/nginx/html:/usr/share/nginx/html --restart=always nginx:latest
docker cp /root/backup/hizeer.com nginx:/usr/share/nginx/
docker cp /root/backup/default.conf nginx:/etc/nginx/conf.d/default.conf
docker cp nginx:/etc/nginx/conf.d/default.conf default.conf.bak
docker restart nginx
http://yonsz.com/wiki/images/f/fc/Nginx-filebeat.zip
docker build -t filebeat-nginx .
docker run -p 80:80 -p 443:443 -p 8181:8181 -d -it --link elk --restart=always --name nginx filebeat-nginx
docker run -p 80:80 -p 443:443 -p 8181:8181 -d -it --restart=always --name nginx filebeat-nginx
重新绑定一个端口:
1、获得容器IP
docker inspect nginx | grep IPAddress
2、将容器的8000端口映射到Docker主机的8001端口
iptables -t nat -A DOCKER -p tcp --dport 8181 -j DNAT --to-destination 172.17.0.2:18181
4,打包服务:jenkins:(2.46.1版本没有内存溢出的问题)
mkdir /disk02/jenkins
mkdir /disk02/jenkins/jobs
mkdir /disk02/jenkins/tools
mkdir /disk02/jenkins/repo
chmod -R 777 /disk02/jenkins
chown -R 200 /disk02/jenkins
正确的:
docker run --restart=always -e TZ="Asia/Shanghai" --name jenkins -p 9091:8080 \
-v /disk02/jenkins/jobs:/var/jenkins_home/jobs \
-v /disk02/jenkins/tools:/var/jenkins_home/tools \
-v /disk02/jenkins/repo:/var/jenkins_home/repo jenkins/jenkins
访问地址如:
http://localhost:9091
不需要带 jenkins 工程名称;
docker exec -it jenkins /bin/bash
5,nexus:
mkdir /data2/nexus
mkdir /data2/nexus/data
chown -R 200 /disk02/nexus/data —注意必须是200的所有者权限;
docker run -d -p 8080:8081 --name nexus --restart=always -v /disk02/nexus/data:/sonatype-work sonatype/nexus
docker run -d -p 8080:8081 --name nexus --restart=always -v /disk02/nexus/data:/sonatype-work sonatype/nexus
注意运行出错时,要关闭 linux 的 SELinux 功能。
6,安装 redis
docker run --name redis -d --restart=always --publish 6379:6379 --volume /usr/local/redis:/var/lib/redis sameersbn/redis:latest --appendonly yes
增加密码:
docker run --name redis -d --restart=always \
--publish 6379:6379 \
--env 'REDIS_PASSWORD=yonsz.com' \
--volume /disk02/redis:/var/lib/redis \
sameersbn/redis:latest
要关闭执行以下命令:
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
7,elk
docker run -p 5601:5601 -p 9200:9200 -p 5044:5000 --restart=always -it -v /disk02/elk/data:/data -v /disk02/elk/logstash:/var/log/logstash --name elk 18fgsa/elk-docker
sudo sysctl -w vm.max_map_count=262144
单独的 docker pull logstash
docker run -it -v /disk02/nginx/log:/disk02/nginx/log --rm logstash -e 'input { file { path => "/disk02/nginx/log/*.log" type => "nginx"} } output { elasticsearch { hosts => "10.135.143.159:9200" } }'
docker run -it -v /disk02/nginx/log:/disk02/nginx/log --name logstash logstash -e 'input { file { path => "/disk02/nginx/log/*.log" type => "nginx"} } output { elasticsearch { hosts => "10.135.143.159:9200" } }'
以下是正确的:
docker run -d --restart=always -p 5601:5601 -p 5044:5000 -p 9200:9200 -p 9300:9300 --name elk --ulimit nofile=65536:65536 -v /disk02/nginx/log:/opt/nginx/log kenwdelong/elk-docker:latest
docker run -d --restart=always -p 5601:5601 -p 5044:5000 -p 9200:9200 -p 9300:9300 --name elk --ulimit nofile=65536:65536 kenwdelong/elk-docker:latest
#5601 9200 9300 5000 5044
https://hub.docker.com/r/kenwdelong/elk-docker/
直接写入到 elk 中的示例:
docker run --name jhipster.pxgateway -e TZ="Asia/Shanghai”
--log-driver=syslog --log-opt syslog-address=tcp://10.135.143.159:5044 --log-opt syslog-facility=daemon
-v /disk02/jhipster/pxgateway/log:/tmp --restart=always -p 8080:8080 -p 5701:5701/udp jhipster.pxgateway:1.0
8,mediawiki
无
9,apachephp
docker run -d --name apache-php --restart=always -p 0.0.0.0:8000:80 --volume /disk02/apache-php/www:/app webdevops/php-apache:latest
不建议使用下面的 docker
git clone https://github.com/jjcosgrove/docker-apache-php.git
docker build -t apache-php .
docker run -d --name apache-php --restart=always -p 0.0.0.0:8000:80 --volume /usr/local/apache-php/www:/var/www apache-php:latest
docker run -d --name apache-php --restart=always -p 0.0.0.0:8000:80 --volume /usr/local/apache-php/www:/app webdevops/php-apache:ubuntu-15.10
10,rabbitmq
docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 -v /usr/local/rabbitmq/log:/data/log -v /usr/local/rabbitmq/data:/data/mnesia dockerfile/rabbitmq
参照网址:https://github.com/frodenas/docker-rabbitmq
docker run -d --name rabbitmq --restart=always -p 5672:5672 -p 15672:15672 -e RABBITMQ_USERNAME=admin -e RABBITMQ_PASSWORD=admin frodenas/rabbitmq
docker run -d --name rabbitmq --restart=always -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3-management
第一次使用 Z1时,请注意登录后台添加 quaue和 exchange,否则启动会出错。
11,activemq:
docker run --name activemq -p 61616:61616 -e ACTIVEMQ_ADMIN_LOGIN=admin -e ACTIVEMQ_ADMIN_PASSWORD=admin --restart=always -d webcenter/activemq:latest
docker run -d -p 8161:8161 -p 61616:61616 -e ACTIVEMQ_ADMIN_LOGIN=admin -e ACTIVEMQ_ADMIN_PASSWORD=admin --name activemq -v /usr/local/activemq:/opt/apache-activemq-5.13.3/data -v /usr/local/activemq/kahadb:/opt/apache-activemq-5.13.3/data/kahadb registry.aliyuncs.com/daydayup/activemq
12, zookeeper
docker run -d --name zookeeper --restart=always -p 2181:2181 zookeeper
13,安装 mysql
docker run --name mysql -p 3306:3306 --restart=always -d -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
配置文件在以下目录:
mysql:/etc/mysql/
主要配置文件在:
docker cp backup/mysql/mysql.conf.d/mysqld.cnf mysql:/etc/mysql/mysql.conf.d/mysqld.cnf
14,solr:
mkdir /disk02/solr
chmod -R 777 /disk02/solr
docker run --name solr -d -p 8983:8983 -t -w /opt solr:6.5.1
docker cp solr:/opt/solr /disk02/solr
docker run --name solr -d -p 8983:8983 -t -w /opt -v /disk02/solr:/opt/solr solr:6.5.1
docker run --name laravel -p 8090:80 -v /disk02/laravel/solr_app/app/:/var/www/laravel/app/ -v /disk02/laravel/solr_app/public/:/var/www/laravel/public/ -d eboraas/laravel
15,运行 springboot 的 docker:
15.1,Dockerfile
#基础镜像:仓库是java,标签用8u66-jdk
FROM java:8u66-jdk
#当前镜像的维护者和联系方式
MAINTAINER yonsz yaojiamiao@yonsz.com
#将打包好的spring程序拷贝到容器中的指定位置
ADD target/NettyMqBoot-1.0.1-SNAPSHOT.jar /app.jar
#容器对外暴露8080端口
EXPOSE 9191
EXPOSE 18866
#容器启动后需要执行的命令
CMD java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
15.2,docker build --rm -t springboot:1.0 .
15.3,docker 运行时,需要把对应的 jar 文件docker cp xxx.jar netty:/app.jar
docker run --name springboot.api -e TZ="Asia/Shanghai" --restart=always -p 18866:18866 -p 9191:9191 yonsz/springboot:1.0
docker run --name springboot.fav -e TZ="Asia/Shanghai" --restart=always -p 8182:8182 springboot:1.0
docker run --name mobilenetty -e TZ="Asia/Shanghai" --restart=always -p 25533:25533 -p 9292:9292 springboot:1.0
16,mongodb
docker run --name mongo --restart=always -d -p 27017:27017 -p 28017:28017 -e MONGODB_USER="root" -e MONGODB_DATABASE="hi_database" -e MONGODB_PASS=“root123” -v /disk02/mongodb/db:/data/db tutum/mongodb
建议用以下的语句:
docker run -p 27017:27017 --restart=always --name mongodb -d -e MONGODB_USER=user -e MONGODB_PASSWORD=root123 -e MONGODB_DATABASE=mydb -e MONGODB_ADMIN_PASSWORD=admin123 -e TZ="Asia/Shanghai" -v /disk02/mongodb/data:/var/lib/mongodb/data centos/mongodb-32-centos7
chmod -R 777 /disk02/mongodb/data
17,hazelcast
docker run --name hazelcast --restart=always -p 5701:5701 -ti hazelcast/hazelcast
18,sonarqube
docker run -d --name sonarqube -v /disk02/sonarqube/data:/opt/sonarqube/data -p 19000:9000 -p 19092:9092 \
-e SONARQUBE_JDBC_USERNAME=root \
-e SONARQUBE_JDBC_PASSWORD=shl#@1908 \
-e SONARQUBE_JDBC_URL='jdbc:mysql://10.66.101.244:3306/sonar?useUnicode=true&characterEncoding=utf8' \
sonarqube:latest
19,fastdfs
docker run -d --name tracker -v /disk02/fastdfs/tracker:/data/fast_data --net=host morunchang/fastdfs sh tracker.sh
docker run -d --name storage0 -v /disk02/fastdfs/storage0:/data/fast_data --net=host -e TRACKER_IP=172.17.0.1:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
以上需要更改 storage 的 nginx 的端口配置;
以下不建议使用。
//git clone https://github.com/phinexdaz/docker_fastdfs.git
使用附件:
20,storm
20.1,先安装 zookeeper
docker run -d --name zookeeper --restart=always -p 2181:2181 zookeeper
20.2:
docker run -d --restart always --name storm-nimbus --link zookeeper:zookeeper storm storm nimbus
#docker run -d --restart always --name storm-supervisor --link zookeeper:zookeeper --link storm-nimbus:nimbus storm storm supervisor
#docker run --link storm-nimbus:nimbus -it --rm -v $(pwd)/topology.jar:/topology.jar storm storm jar /topology.jar org.apache.storm.starter.WordCountTopology topology
最后:
docker run -d -p 8080:8080 --restart always --name storm-ui --link storm-nimbus:nimbus storm storm ui
21,jhipster-registry
docker run -d --restart always --name jhipster-registry -p 8761:8761 -e TZ="Asia/Shanghai" jhipster/jhipster-registry
docker build --rm -t jhipster-registry:1.0 .
docker run -d --restart always --name jhipster-registry -p 8761:8761 -e TZ="Asia/Shanghai" jhipster-registry:1.0
docker build --rm -t uaa .
docker-compose -f app.yml up
22,jhipster
https://www.jhipster.tech/installation/
- docker container stop jhipster
- docker container rm jhipster
- docker image pull jhipster/jhipster
- docker container run --name jhipster -v /disk02/jhipster:/home/jhipster/app -v /disk02/jhipster/.m2:/home/jhipster/.m2 -p 8080:8080 -p 9000:9000 -p 3001:3001 -d -t jhipster/jhipster
使用 root 进入容器:
docker container exec -it --user root jhipster bash
23,Docker 镜像分析工具 diving
docker run -d —name diving --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -p 7001:7001 \ vicanso/diving
24,sonarqube
docker run -d --name sonarqube --restart=always -p 9000:9000 -p 9092:9092 \
-e SONARQUBE_JDBC_USERNAME=root \
-e SONARQUBE_JDBC_PASSWORD=123456 \
-e SONARQUBE_JDBC_URL="jdbc:mysql://172.17.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" sonarqube
docker run \
-ti \
-d \
--restart=always \
--name shipyard-controller \
--link shipyard-rethinkdb:rethinkdb \
--link shipyard-swarm-manager:swarm \
-p 8888:8080 \
shipyard/shipyard:latest \
server \
-d tcp://swarm:3375
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 --restart=always -d -t denibertovic/elasticsearch
curl -X GET localhost:9200
尝试使用 Kitematic 来管理 docker
docker run --name docker_registry --restart=always -d -p 5000:5000 -v /usr/local/docker/registry:/tmp/registry registry:latest
执行 docker system prune -a 命令之后,Docker占用的磁盘空间减少了很多:
- 上一篇: ELK之filebeat基础篇
- 下一篇: ELK不香了!我用Graylog
猜你喜欢
- 2024-09-22 经典案例复盘——运维专家讲述如何实现K8S落地
- 2024-09-22 EFK 日志系统收集K8s日志 (二)
- 2024-09-22 Docker安装ELK并实现JSON格式日志分析
- 2024-09-22 开发利器丨如何使用ELK设计微服务中的日志收集方案?
- 2024-09-22 智汇华云 | 集群日志动态采集方案
- 2024-09-22 使用Elastic进行事件响应的便携式SIEM
- 2024-09-22 日志服务架构设计
- 2024-09-22 如何将 Python 项目日志接入到 ELK
- 2024-09-22 搭建ELK容器化,so easy
- 2024-09-22 Elasticsearch Service 数据接入
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)