1、nginx
docker run -d -p 80:80 --name nginx --restart always \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/logs:/var/log/nginx \
nginx:latest
2、redis
redis.conf 查看:https://www.cnblogs.com/zxtceq/p/7676911.html
docker run -d -p 6379:6379 --name redis --restart always \
-v /home/redis/conf:/usr/local/etc/redis \
-v /home/redis/data:/data \
redis:latest \
--requirepass 123456
#修改密码
config get requirepass
config set requirepass 密码
3、tomcat
docker run --privileged=true -d -p 8080:8080 --name tomcat --restart always \
-v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps \
tomcat:latest
4、mysql
docker run --privileged=true -d -p 3306:3306 --name mysql --restart always \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /home/mysql/logs:/logs \
-v /home/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
mysql:latest \
--lower_case_table_names=1 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci \
--sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
5、ftp
docker run --privileged=true -d -p 20:20 -p 21:21 -p 21100-21110:21100-21110 --name vsftpd --restart=always \
-v /usr/local/nginx/html/ftp:/home/vsftpd \
-e FTP_USER=ftpshop \
-e FTP_PASS=123456 \
fauria/vsftpd
6、mongo
docker run --privileged=true -d -p 27017:27017 --name mongo --restart always \
-v /var/local/mongo/db:/data/db \
-v /var/local/mongo/conf:/etc/mongo \
mongo:latest \
--auth \
--config /etc/mongo/mongod.conf
创建完成mongo后进入容器内,简单设置mongo权限
docker exec -it mongo mongo admin
use admin
# 创建一个名为 admin,密码为 123456 的用户。
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'root', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
db.auth('admin', '123456')
其中role可以设置一下一些角色,Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
4. 备份恢复角色:backup、restore
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
#这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7、nexus3
nexus是一个文件服务器(一般可以用来搭建私有maven、apt、bower、docker、npm、nuget、r、raw、yum等等私有仓库),可以用来存储jar, docker, npm等软件包,也可以存储其他文件格式。
docker run --privileged=true -d -p 9998:8081 --name nexus --restart always \
-v /var/local/nexus/nexus-data:/nexus-data \
sonatype/nexus3:latest
8、zentao(禅道)
docker run --privileged=true -d -p 9998:80 --name zentao --restart always \
-v /var/local/zentao/www:/app/zentaopms \
-v /var/local/zentao/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
zentao:latest
9、gitlab
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
docker run --privileged=true --detach --name gitlab --restart always \
--hostname 192.168.10.238 \
--publish 9100:443 --publish 9101:80 --publish 9102:22 \
--volume /home/gitlab/config:/etc/gitlab \
--volume /home/gitlab/logs:/var/log/gitlab \
--volume /home/gitlab/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:latest
/home/gitlab/config/gitlab.rb
external_url '192.168.10.238'
nginx['listen_port'] = 80
docker exec -it gitlab /bin/bash
gitlab-ctl reconfigure
FROM gitlab/gitlab-runner
ADD jdk-8u351-linux-x64.tar.gz /usr/local
ENV JAVA_HOME=/usr/local/jdk1.8.0_351
ENV CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$PATH
#创建docker
docker run -d --privileged=true --name gitlab-runner --restart always \
-v /home/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
docker exec -it gitlab-runner-test bash
gitlab-runner register
gitlab-runner run
9、rabbitmq
docker run -d --privileged=true --name rabbitmq --restart always \
-p 5672:5672 -p 15672:15672 \
--hostname rabbitmq-node1 \
-e RABBITMQ_DEFAULT_VHOST=/ \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-v /home/rabbitmq/conf:/etc/rabbitmq/rabbitmq.config \
-v /home/rabbitmq/data:/var/lib/rabbitmq/mnesia/rabbit@my-rabbit \
rabbitmq:3.11.5-management
10、elasticsearch
docker network create somenetwork
chmod 777 /var/local/elasticsearch/data
chmod 777 /var/local/elasticsearch/logs
chmod 777 /var/local/elasticsearch/plugins
docker run -d --privileged=true --net somenetwork --name elasticsearch --restart=always \
-v /home/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
elasticsearch:6.8.10
11、kibana
docker run -d --privileged=true --net somenetwork --name kibana --restart=always \
-p 5601:5601 \
-e "ELASTICSEARCH_HOSTS=http://elasticsearch-name:9200" \
kibana:6.8.10
12、mosquitto,具体hub.docker.com
docker run -d -it --privileged=true --restart=always \
-v /var/local/mosquitto/config:/mosquitto/config \
-v /var/local/mosquitto/data:/mosquitto/data \
-v /var/local/mosquitto/log:/mosquitto/log \
-p 1883:1883 -p 9001:9001 \
eclipse-mosquitto:latest
13、consul
docker run -d --restart=always \
-p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600/udp consul consul agent -dev -client=0.0.0.0 --log-opt max-size=10m --log-opt max-file=1
#修改目录权限,因为挂载的文件所属用户就是200,如果不改权限,nexus镜像会不断重启
chown -R 200 /home/nexus/nexus-data
docker run -d --name nexus3 --privileged=true --restart=always \
-v /home/nexus/nexus-data:/nexus-data \
-p 10011:8081 \
-p 10012:8082 \
-p 10013:8083 \
sonatype/nexus3:latest