实现jenkins部署mysql,redis,nginx,java,vue等项目
基础环境准备
docker里面的项目默认安装在/root/下,如/root/mysql,/root/redis等
1,centos配置阿里云镜像
# 1. 备份当前的YUM仓库文件
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 2. 删除原有的仓库文件
sudo rm -rf /etc/yum.repos.d/CentOS-Base.repo
# 3. 下载阿里云的仓库配置文件
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 4. 清理缓存
sudo yum clean all
# 5. 生成缓存
sudo yum makecache
2,更新yum插件
yum update -y
安装docker(参考链接)
1,如果系统中已经存在旧的Docker,则先卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2,配置Docker的yum库
安装一个yum工具
yum install -y yum-utils
配置Docker的yum源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果上述失效,用这个
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker其他辅助命令
# 启动Docker
systemctl start docker
# 停止Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机自启
systemctl enable docker
# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
# 可以查看所有的容器
docker ps -a
配置阿里云镜像,在首页的产品中,找到阿里云的容器镜像服务ACR

点击后进入控制台
找到镜像工具下的镜像加速器

页面向下滚动,即可找到配置的文档说明:

具体命令如下:
# 创建目录
mkdir -p /etc/docker
# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
# 重新加载配置
systemctl daemon-reload
# 重启Docker
systemctl restart docker
2024年6月 国内docker镜像大部分失效了
解决方法是:docker失效替换
docker安装mysql (参考链接)
1,拉取mysql
docker pull mysql:5.7.36
2,创建数据卷目录
用于映射docker里面的mysql目录
mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
目录自己定义,最好在数据盘新建,在/root/mysql/conf中创建 *.cnf 文件
# 进入mysql配置目录
cd /root/mysql/conf
# 新增my.cnf配置文件
touch my.cnf
3,添加自定义配置
# 添加配置
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
max_connections=1000
#lower_case_table_names保持和windows一致,不区分大小写,按需配置
lower_case_table_names=1
#有时要执行很大的sql初始库脚本
max_allowed_packet=2048M
4,执行安装命令
docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.36
参数解释
- 【-p 3306:3306 --name mysql \ 】将容器的3306端口映射到主机的3306端口,'\'指换行符,下同
- 【-v /mydata/mysql/log:/var/log/mysql \ 】将配置文件夹挂载到主机,冒号左边为Linux的目录结构,右边为docker内部的
- 【-v /mydata/mysql/data:/var/lib/mysql \ 】 将日志文件夹挂载到主机
- 【-v /mydata/mysql/conf:/etc/mysql \ 】 将配置文件夹挂载到主机
- 【-e MYSQL_ROOT_PASSWORD=123456 \】初始化用户root,密码为:123456
- 【-d mysql:5.7.36 】mysql版本
5,启动mysql
# 启动mysql
docker start mysql
# 重启mysql
docker restart mysql
# 停止mysql
docker stop mysql
# 查看mysql状态
docker stats mysql
# 设置mysql为docker 自启动
docker update mysql --restart=always
docker安装redis(参考链接)
1,拉取redis
docker pull redis:6.2.6
2,创建数据卷目录
mkdir -p /root/redis/conf /root/redis/data
3,执行安装命令
docker run -itd --name redis --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 -v /data/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data redis:6.2.6 redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456
参数解释
- 【 --restart=always】 开机启动,失败也会一直重启;
- 【–log-opt max-size=100m】意味着一个容器日志大小上限是100M;
- 【–log-opt max-file=2】意味着一个容器有2个日志,分别是id+.json、id+1.json;
- 【-p 6379:6379】 将宿主机6379端口与容器内6379端口进行映射;
- 【-v】 将宿主机目录或文件与容器内目录或文件进行挂载映射;
- 【-itd】 i:以交互模式运行容器,通常与 -t 同时使用; t:为容器重新分配一个伪输入终端,通常与 -i 同时使用; d:表示后台启动redis;
- 【–name】 给容器命名;
- 【–appendonly yes】 开启redis 持久化;
- 【–requirepass 123456】 强烈建议设置密码,并且将密码设置为高强度复杂;
- 【redis-server /etc/redis/redis.conf】 以配置文件启动redis,加载容器内的conf文件;
4,启动redis
# 启动redis
docker start redis
# 重启redis
docker restart redis
# 停止redis
docker stop redis
# 查看redis状态
docker stats redis
docker安装nginx(参考链接)
nginx安装有点曲折
1,拉取nginx
docker pull nginx:1.24.0
2,创建数据卷目录
mkdir -p /root/nginx/conf /root/nginx/log /root/nginx/html
3,拷贝nginx配置
# 生成容器
docker run --name nginx -p 9001:80 -d nginx:1.24.0
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /root/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /root/nginx/
4,删掉旧nginx
# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx
# 删除正在运行的nginx容器
docker rm -f nginx
5,执行安装命令
docker run \
-p 80:80 \
--name nginx \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /root/nginx/log:/var/log/nginx \
-v /root/nginx/html:/usr/share/nginx/html \
-d nginx:1.24.0
参数解释
- 【–name nginx】启动容器的名字
- 【-d】后台运行
- 【-p 80:80】 将容器的 80(后面那个) 端口映射到主机的 80(前面那个) 端口
- 【-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf】挂载nginx.conf配置文件
- 【-v /home/nginx/conf/conf.d:/etc/nginx/conf.d】 挂载nginx配置文件
- 【-v /home/nginx/log:/var/log/nginx】挂载nginx日志文件
- 【-v /home/nginx/html:/usr/share/nginx/html】挂载nginx内容
- 【nginx:1.24.0】本地运行的版本
- 【\ 】shell 命令换行
6,启动nginx
# 启动nginx
docker start nginx
# 重启nginx
docker restart nginx
# 停止nginx
docker stop nginx
# 查看nginx状态
docker stats nginx
docker安装jenkins (参考链接)
1,拉取jenkins
最好指定后缀,否则是很旧的版本
docker pull jenkins/jenkins:2.450
2,创建数据卷目录
mkdir -p /root/jenkins/home
3,执行安装命令
docker run -d -uroot -p 8899:8080 -p 50000:50000 --name jenkins --privileged=true -v /root/jenkins/home:/var/jenkins_home --env JAVA_OPTS="-Duser.timezone=GMT+08" jenkins/jenkins:2.450
4,启动jenkins
# 启动jenkins
docker start jenkins
# 重启jenkins
docker restart jenkins
# 停止jenkins
docker stop jenkins
# 查看jenkins状态
docker stats jenkins
356

被折叠的 条评论
为什么被折叠?



