Docker 部署常见应用


Portainer

https://www.portainer.io/installation/

docker volume create portainer_data
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/opt/portainer portainer/portainer

-v portainer_data:/opt/portainer portainer/portainer:数据目录

 

MySQL

https://hub.docker.com/_/mysql

docker run --restart=always --name mysql \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/log:/var/log/mysql \
-v /opt/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root -e MYSQL_ROOT_HOST=% -e TZ=Asia/Shanghai \
-p 3306:3306 -d mysql:latest

docker mysql 连接慢:https://dev.mysql.com/doc/refman/8.0/en/host-cache.html

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_skip_name_resolve

vim /opt/mysql/conf/config-file.cnf


[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
max_connections = 1000
default-time-zone = '+08:00'
init_connect = 'SET collation_connection = utf8mb4_unicode_ci'
init_connect = 'SET NAMES utf8mb4'
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

MySQL Config:https://www.cnblogs.com/jhxxb/p/13291593.html

查看帮助

docker run -it --rm mysql:latest --verbose --help

MYSQL_ROOT_PASSWORD:root 密码

MYSQL_ROOT_HOST:root 用户远程访问,% 表示任意地址

TZ:时区

其它可用环境变量:https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html

-v /opt/mysql/data:/var/lib/mysql:数据目录

-v /opt/mysql/conf:/etc/mysql/conf.d:配置目录,MySQL 实例从采用混合(/etc/mysql/my.cnf 和自定义配置)设置

--character-set-server=utf8mb4

--collation-server=utf8mb4_unicode_ci

 

MariaDB

docker run --name my-mariadb \
-v /opt/mariadb/conf:/etc/mysql/conf.d \
-v /opt/mariadb/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-p 3306:3306 -d mariadb:10.5.8 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

https://hub.docker.com/_/mariadb

 

RabbitMQ

docker run --restart=always -d --name rabbitmq --hostname my-rabbit \
-e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest \
-p 5672:5672 -p 15672:15672 \
-v /opt/rabbitmq:/var/lib/rabbitmq/mnesia \
rabbitmq:management-alpine

https://hub.docker.com/_/rabbitmq

 

Jenkins

https://www.jenkins.io/zh/doc/book/installing

https://www.jenkins.io/doc/book/installing/#installing-docker

# 创建网桥网络
docker network create jenkins
# 创建数据卷,持久化 Jenkins 数据
docker volume create jenkins-data

docker run \
  --restart=always \
  -u root \
  -d \
  -p 8090:8080 \
  -p 50000:50000 \
  -v /home/jenkins/data:/var/jenkins_home \
  -v /home/jenkins/tools:/tools \
  -v /home/jenkins/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

https://www.jenkins.io/doc/book/installing/#setup-wizard

指定用户:--user $(id -u),默认用户为 guest

jenkins-data 数据卷默认路径:/var/lib/docker/volumes/jenkins-data/_data

 

ElasticSearch

IK 分词:https://github.com/medcl/elasticsearch-analysis-ik/releases

mkdir -p /opt/elasticsearch/config
mkdir -p /opt/elasticsearch/data
mkdir -p /opt/elasticsearch/plugins
echo "http.host: 0.0.0.0" >> /opt/elasticsearch/config/elasticsearch.yml
docker run --restart=always --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /opt/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /opt/elasticsearch/data:/usr/share/elasticsearch/data \
-v /opt/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.9.3 docker run --restart=always --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.8.121:9200 -p 5601:5601 -d kibana:7.9.3

将 IK 分词插件解压后放置 /opt/elasticsearch/plugins 下,重启 ES 容器即可,注意 IK 版本要与 ES 版本对应

查看 IK 是否安装成功

# 查看 ES 容器 ID
docker ps
# 进入 ES 容器
docker exec -it 59a00c5f46cb /bin/bash
# 列出所有已安装插件
./bin/elasticsearch-plugin list
# 退出容器,不会关闭容器
exit

 

Redis

https://hub.docker.com/_/redis

mkdir -p /opt/redis/data
mkdir -p /opt/redis/conf
# touch /opt/redis/conf/redis.conf
echo "appendonly yes" >> /opt/redis/conf/redis.conf
# 要存在 /opt/redis/conf/redis.conf 文件
docker run --restart=always --name redis \
-v /opt/redis/data:/data \
-v /opt/redis/conf/redis.conf:/etc/redis/redis.conf \
-p 6379:6379 -d redis:alpine \
redis-server /etc/redis/redis.conf
# 连接 Redis
docker exec -it redis redis-cli
quit

 

Prometheus

docker run -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus

/opt/prometheus/prometheus.yml

global:
  scrape_interval: 60s
  evaluation_interval: 60s

scrape_configs:
  - job_name: 'spis'
    scrape_interval: 60s
    scrape_timeout: 10s
    metrics_path: '/spis/actuator/prometheus'
    static_configs:
      - targets: ['xxx:80','xxx:8080']

http://xxx:9090/targets

 

Grafana

docker run -d -p 3000:3000 --name grafana -v /opt/grafana:/var/lib/grafana grafana/grafana

默认用户名密码都是 admin,第一次登录后需要设置新密码

https://www.cnblogs.com/larrydpk/p/12563497.html

https://grafana.com/grafana/dashboards

 

Nexus3

mkdir /opt/nexus3 && chown -R 200 /opt/nexus3
docker run -d -p 8081:8081  --restart=always --name nexus3 -v /opt/nexus3:/nexus-data sonatype/nexus3

用户名:admin,密码:cat /home/nexus3/admin.password

https://hub.docker.com/r/sonatype/nexus3

配置 maven 程序中的 settings.xml

  <server>
    <id>xxx-xxx</id> <!-- 随意 -->
    <username>admin</username>
    <password>admin</password>
  </server>
</servers>

配置要上传 jar 包项目中的 pom.xml,执行 deploy 就会上传

<distributionManagement>
    <repository>
        <!--这里的 id 需要和 settings.xml 中 server 的 id 一致-->
        <id>xxx-xxx</id>
        <url>http://xxx.xxx.xxx.xxx:8081/repository/xxx-xxx/</url>
    </repository>
</distributionManagement>

配置要使用 jar 包中的 pom.xml

<repositories>
    <repository>
        <id>xxx-xxx</id>
        <url>http://xxx.xxx.xxx.xxx:8081/repository/xxx-xxx/</url>
    </repository>
</repositories>

https://blog.csdn.net/mytt_10566/article/details/78966577

 

Tomcat

https://registry.hub.docker.com/_/tomcat

docker run -d -p 8888:8080 \
-v /home/dsw/docker/tomcat/logs/:/usr/local/tomcat/logs/ \
-v /home/dsw/docker/tomcat/webapps/:/usr/local/tomcat/webapps/ \
tomcat:9.0

容器内安装 vim

docker exec -it --user root xxxxxxxx /bin/bash

cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list
sed -i 's|security.debian.org/debian-security|mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
apt-get update
apt-get install vim

manager-gui 配置:https://www.cnblogs.com/jhxxb/p/11240356.html

 

Oracle DataBase

https://hub.docker.com/r/loliconneko/oracle-ee-11g

也可自己构建镜像:https://www.cnblogs.com/jhxxb/p/14991326.html

docker run --restart=always --name oracle-11g \
-v /home/dsw/oracle:/u01/app/oracle \
-e WEB_CONSOLE=false \
-e DBCA_TOTAL_MEMORY=4096 \
-p 1521:1521 \
-d loliconneko/oracle-ee-11g

连接信息

hostname: localhost
port: 1521
sid: EE
service name: EE.oracle.docker
username: system
password: oracle

 

运行 Java 应用

构建 oracle java 镜像:https://github.com/oracle/docker-images/tree/main/OracleJava

与构建 oracle database 类似:https://www.cnblogs.com/jhxxb/p/14991326.html

docker run -d --restart=always --name springboot \
-v /opt/springboot:/java \
-p 9000:9000 \
oracle/serverjre:8-oraclelinux7 \
java -Dspring.profiles.active=dev -Dserver.port=9000 -Dlogging.file.name=/java/logs/file.log -jar /java/springboot.jar

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM