Docker安装各软件(持续更新)

Docker安装各软件总结

Nginx

Docker运行的Nginx是在容器内的,表示如果要转发静态文件,一定要映射宿主机与容器的文件路径。
如果使用反向代理,因为nginx在容器而非在宿主机中,所以使用127.0.0.1转发会失败,暂时知道的有两种解决办法
1,可以在配置文件中转发使用宿主机ip进行配置。但这样就必须要开放宿主机的端口,是不安全的,如果是自己的虚拟机可以这样使用。
2,开放docker虚拟网卡在这里插入图片描述
使用命令:firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“172.17.0.1/16” accept’
然后nginx的配置,使用 172.17.0.1 进行转发就可以;

拉取镜像

docker pull nginx:latest

简单启动nginx

docker run --name nginx -d -p 80:80 nginx:latest

挂载文件启动nginx

docker run --name nginx -d -p 80:80  -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  -v /data/nginx/logs:/var/log/nginx  nginx:latest

说明:

–name nginx
指定容器名为:nginx
-d
指定容器后台运行
-p 80:80
指定容器80端口映射到宿主机的80端口
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
指定容器/etc/nginx/nginx.conf文件,指向宿主机/data/nginx/conf/nginx.conf文件
-v /data/nginx/logs:/var/log/nginx
指定容器/data/nginx/logs文件夹,指向宿主机/var/log/nginx文件夹

RabbitMq

拉取镜像

docker pull rabbitmq:management

启动

docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management

说明:

–name rabbitmq
指定容器名为:rabbitmq
-d
指定容器后台运行
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin
传递环境变量到容器,作为RabbitMq的账号密码(可选)
-p 15672:15672 -p 5672:5672
RabbitMq需要开放15672,5672端口,映射到宿主机

Redis

拉取镜像

docker pull redis:latest

启动

docker run -d --name redis -p 6379:6379 -v /data/redis/data:/data  -v /data/conf/redis.conf:/usr/local/etc/redis/redis.conf redis:latest /usr/local/etc/redis/redis.conf --requirepass "123456"

说明:

–name redis
指定容器名为:redis
-d
指定容器后台运行
-p 6379:6379
redis需要开放6379端口,映射到宿主机
–requirepass “123456”
redis的密码(可选)
-v /data/redis/data:/data
挂载数据持久化数据(可选)
-v /data/conf/redis.conf:/usr/local/etc/redis/redis.conf
挂载配置文件(可选)
redis-server /usr/local/etc/redis/redis.conf
使用自己的配置文件启动redis(可选)

MinIo

拉取镜像

docker pull minio/minio

单机版启动,默认账号密码为: minioadmin=minioadmin

docker run --name=minio -p 9000:9000 minio/minio server /data

说明:

–name=minio
指定容器名为:minio
-p 9000:9000
minio默认已9000端口启动
server /data
启动指定文件储存在容器内的地址

指定账号密码,指定文件储存目录映射启动

docker run -p 9000:9000 --name minio1 \
  -e "MINIO_ACCESS_KEY=admin123456" \
  -e "MINIO_SECRET_KEY=admin123456" \
  -v /mnt/data:/data \
  -v /mnt/config:/root/.minio \
  minio/minio server /data

说明:

-e “MINIO_ACCESS_KEY=admin123456”
-e “MINIO_SECRET_KEY=admin123456”
传递环境变量,指定ACCESS_KEY 和 SECRET_KEY,登录所用账号密码
-v /mnt/data:/data
-v /mnt/config:/root/.minio
映射容器地址到宿主机,/mnt/data 文件储存地址,/mnt/config 配置地址

MySQL

拉取镜像

docker pull mysql:8.0.16
mkdir -p /data/mysql/conf.d

vi mysql.cnf 内容

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
[mysqld]
max_connections = 1500
bind-address= 0.0.0.0
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#密码加密规则
default_authentication_plugin= mysql_native_password
# 表名不区分大小写
#lower_case_table_names=1 
#server-id=1
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysqlx.sock
#symbolic-links=0
# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

启动

docker run --name mysql \
    --restart=always \
    -p 3306:3306 \
    -v /data/mysql/conf.d:/etc/mysql/conf.d \
    -v /data/mysql/var/lib/mysql:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -e TZ=Asia/Shanghai \
    -d mysql:8.0.16

说明:

–name mysql
指定容器名为:mysql(可选)
–restart=always
docker启动,容器自启动(可选)
-p 3306:3306
指定开放端口(必选)
-v /data/mysql/conf.d:/etc/mysql/conf.d
-v /data/mysql/var/lib/mysql:/var/lib/mysql
指定容器映射宿主机配置文件地址,以及数据地址(可选,正式环境必选)
-e MYSQL_ROOT_PASSWORD=123456
-e TZ=Asia/Shanghai
配置环境变量,数据库密码(必选)
-d
指定容器后台运行(可选)

Jenkins

拉取镜像

docker pull jenkins:latest

创建日志配置文件

mkdir -p /data/jenkins
cat > /data/jenkins/log.properties <<EOF
handlers=java.util.logging.ConsoleHandler
jenkins.level=FINEST
java.util.logging.ConsoleHandler.level=FINEST
EOF

启动

docker run --name jenkins --restart=always -d -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Djava.util.logging.config.file=/var/jenkins/log.properties" -v /data/jenkins/jenkins_home:/var/jenkins_home -v /data/jenkins/log.properties:/var/jenkins/log.properties jenkins 

说明:

–name jenkins
指定容器名为:jenkins(可选)
–restart=always
docker启动,容器自启动(可选)
-p 8080:8080 -p 50000:50000
指定开放端口(必选)
-e JAVA_OPTS=“-Djava.util.logging.config.file=/var/jenkins/log.properties” -v
指定日志文件(可选)
-v /data/jenkins/jenkins_home:/var/jenkins_home -v /data/jenkins/log.properties:/var/jenkins/log.properties
指定存储位置和日志文件位置(可选,正式环境必选)

注:由于jenkins用户 -uid 1000,所以指定存储位置可能会报错,先给对应存储位置赋予权限,或者在启动命令后面跟 -u 参数 run -u 0

chown -R 1000:1000 /data/jenkins

Nexus

拉取镜像

docker pull sonatype/nexus3

启动

docker run -d  -p 8081:8081 --name nexus --restart=always -u root -v /data/nexus/data:/nexus-data sonatype/nexus3

说明:

–name nexus
指定容器名为:nexus(可选)
–restart=always
docker启动,容器自启动(可选)
-p 8081:8081
指定开放端口(必选)
-u root
赋予容器root权限,避免启动失败(必选)
-v /data/nexus/data:/nexus-data
指定存储位置

nexus页面框架形式是以 iframe 作为支撑的,主体框架可以正常加载, 但是内部借口和 iframe 里面的内容以及静态资源全部报错,配置https注意在nginx中加配置

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值