docker和常用的中间件安装汇总
一、背景:近期整理环境,汇总了下docker 安装常用的中间件,方便我们自己搭建个人的开发环境,做个记录
1、首先是docker 本身(centos)的安装:
# 旧版本卸载 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 安装工具 sudo yum install -y yum-utils # 配置docker安装地址 sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安装最新版本的Docker引擎和containerd sudo yum install docker-ce docker-ce-cli containerd.io # docker 启动 systemctl start docker # 配置镜像加速 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["你的镜像地址"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
2、安装redis
2.1、单实例
docker run --name redis -p 6379:6379 -d redis:latest redis-server --appendonly yes --requirepass "mypassword"
2.2、装redis集群
#创建docker 网络 172.18.0 172.17.0.1 docker network create redis --subnet 172.18.0.0/16 #创建redis 配置文件 for port in $(seq 1 6);\ do \ sudo mkdir -p /home/redis-cluster/node-${port}/conf sudo touch /home/redis-cluster/node-${port}/conf/redis.conf sudo cat << EOF >/home/redis-cluster/node-${port}/conf/redis.conf port 6379 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 172.18.0.1${port} cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF done # 启动redis for port in $(seq 1 6);\ do \ docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \ -v /home/redis-cluster/node-${port}/data:/data \ -v /home/redis-cluster/node-${port}/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.18.0.1${port} redis redis-server /etc/redis/redis.conf ; \ done #连接redis客户端,配置集群 # 进入任意一个redis 容器内部 docker exec -it redis-1 /bin/sh # 连接redis,配置集群 redis-cli --cluster create 172.18.0.11:6379 172.18.0.12:6379 172.18.0.13:6379 172.18.0.14:6379 172.18.0.15:6379 172.18.0.16:6379 --cluster-replicas 1
3、安装nacos
docker run --name nacos -e MODE=standalone -p 8848:8848 -p 9848:9848 -d nacos/nacos-server:2.0.2
4、安装jenkins
# 获取镜像 docker pull jenkins/jenkins:lts # 挂载目录创建 ,可以将部署用到的中间件放到下面路径,如jdk、maven等 mkdir -p /usr/local/application/data/jenkins_home/ chmod 777 /usr/local/application/data/jenkins_home/ docker run -d -p 8080:8080 -p 50000:50000 -v /usr/local/application/data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:lts # 找到管理员密码初始化jenkins logs jenkins # 也可以进入jenkins容器内部 docker exec -it jenkins /bin/bash
5、安装mariadb
docker run --name mariadb --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mypassword -v /usr/local/application/mariadb/data:/var/lib/mysql -d mariadb:10.7.3-focal
6、安装zookeeper
docker run --name zookeeper -p 2888:2888 -p 3888:3888 -p 8080:8080 -p 2181:2181 --restart always -d
7、安装nginx
# 拉取最新镜像 也可指定版本 docker pull nginx # 创建挂载目录 mkdir -p /usr/local/application/nginx/conf mkdir -p /usr/local/application/nginx/log mkdir -p /usr/local/application/nginx/html # 生成容器 docker run --name nginx -p 80:80 -d nginx # 将容器nginx.conf文件复制到宿主机 docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf # 将容器conf.d文件夹下内容复制到宿主机 docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d # 将容器中的html文件夹复制到宿主机 docker cp nginx:/usr/share/nginx/html /home/nginx/ # 移动配置文件到本地 docker cp nginx:/etc/nginx/nginx.conf /usr/local/application/nginx/conf/nginx.conf docker cp nginx:/etc/nginx/conf.d /usr/local/application/nginx/conf/conf.d docker cp nginx:/usr/share/nginx/html /usr/local/application/nginx/ # 移除久的ng docker rm -f nginx # 启动ng 并挂载配置文件 docker run --net=host -p 80:80 --name nginx -v /usr/local/application/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/application/nginx/conf/conf.d:/etc/ngi nx/conf.d -v /usr/local/application/nginx/log:/var/log/nginx -v /usr/local/application/nginx/html:/usr/share/nginx/html -d nginx