Centos7下docker安装mysql、redis、jenkins【使用docker-compose图文教程】
个人记录前置条件安装Docker与Docker-composeCentos7安装Docker与Docker-compose【图文教程】查看jenkins最新的版本https://www.jenkins.io/download/Jenkins的java版本目前最新jenkins版本后续会淘汰java17建议更新java21。文章默认java21安装如有需要自行修改。Java Support Policy地址配置docker-compose.ymlvimdocker-compose.yml按i进行编辑模式粘贴如下内容。把image里的lts替换为官网看到稳定版本【官网左边LTS】或最新版本【官网右边】建议最新版本。如果不替换直接使用的话可能安装的lts非最新会影响后面插件安装。因为插件往往需要最新版本才能安装手动安装非常麻烦/var/run/docker.sock:/var/run/docker.sock与/usr/bin/docker:/usr/bin/docker必须配置不然jenkinsfile无法使用sh ‘docker version’version:3services:mysql:image:mysql:8.0container_name:mysqlrestart:alwaysports:-3306:3306privileged:trueenvironment:TZ:Asia/ShanghaiMYSQL_ROOT_PASSWORD:kssql741953command:---default-authentication-pluginmysql_native_password---character-set-serverutf8mb4---collation-serverutf8mb4_general_ci---explicit_defaults_for_timestamptrue---lower_case_table_names1volumes:-/mydata/mysql/data/db:/var/lib/mysql-/mydata/mysql/data/conf:/etc/mysql/conf.d-/mydata/mysql/log:/var/log/mysqlredis:image:redis:latestcontainer_name:redisrestart:alwayscommand:-redis-server---requirepass-ksdis741953---appendonly-yessysctls:-net.core.somaxconn65535volumes:-/mydata/redis/data:/data-/etc/localtime:/etc/localtimeports:-6379:6379jenkins:image:jenkins/jenkins:lts-jdk21container_name:jenkinsrestart:alwaysuser:rootports:-8080:8080-50000:50000volumes:-/mydata/jenkins_home:/var/jenkins_home-/etc/localtime:/etc/localtime:ro-/var/run/docker.sock:/var/run/docker.sock-/usr/bin/docker:/usr/bin/docker配置maven的seeting文件maven项目必备mkdir-p/mydata/jenkins_home/appconfig/mavenvim/mydata/jenkins_home/appconfig/maven/settings.xml粘贴如下内容版本根据需要自行调整?xml version1.0 encodingUTF-8?settingsxmlnshttp://maven.apache.org/SETTINGS/1.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsdpluginGroups/pluginGroupsproxies/proxiesservers/serversmirrorsmirroridnexus-aliyun/idmirrorOfcentral/mirrorOfnameNexus aliyun/nameurlhttps://maven.aliyun.com/repository/public/url/mirror/mirrorslocalRepository/root/.m2/repository/localRepositoryprofilesprofileidjdk-17/idactivationjdk17/jdk/activationpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetmaven.compiler.compilerVersion17/maven.compiler.compilerVersion/properties/profile/profilesactiveProfilesactiveProfilejdk-17/activeProfile/activeProfiles/settings运行docker-composedocker-composeup-d安装的是docker compose请使用以下命令dockercompose up-d如运行几分钟后结尾报192.168.0.1:53: i/o timeout可尝试以下方法解决。解决docker-compose up -d报ERROR: Get “https://registry-1.docker.io/v2/”: dial tcp: lookup registry-1.docker.io on 192.168.0.1:53: read udp 192.168.0.12:53003-192.168.0.1:53: i/o timeout运行成功后如下图查看容器dockerps验证Mysql与RedisMysql连接成功Redis连接成功执行redis报一下错误时WARNING overcommit_memory is set to 0! Background save may fail underlow memory condition. To fix this issue add ‘vm.overcommit_memory 1’to /etc/sysctl.conf and then reboot or run the command ‘sysctlvm.overcommit_memory1’ for this to take effect.编辑vim/etc/sysctl.conf新增保存vm.overcommit_memory1重新输入命令生效sysctl-p添加开放8080端口【可跳过】firewall-cmd--zonepublic --add-port8080/tcp--permanent重载入添加的端口firewall-cmd--reload查询8080端口是否开启成功firewall-cmd --query-port8080/tcp如访问不了可尝试如下命令暂时关闭防火墙systemctl stop firewalld查看管理员密码dockerlogs jenkins访问Jenkins修改升级站点localhost是你服务器的IPhttp://localhost:8080/pluginManager/advanced输入管理员密码拉到最下面把url改成以下四选一jenkins源https改成httphttp://updates.jenkins.io/update-center.json阿里云https://mirrors.aliyun.com/jenkins/updates/update-center.json华为云https://mirrors.huaweicloud.com/jenkins/updates/update-center.json清华大学https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json点击Submit。重启jenkinsdockerrestart jenkins如重启报Error response from daemon: Cannot restart container jenkins: driver failed programming external connectivity on endpoint jenkins (4e616d999df473e9d9fb306a629cf81428e79618aa00c6bcfe23e19cdc251b5d): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 50000 -j DNAT --to-destination 172.18.0.2:50000 ! -i br-3ade2f68417d: iptables: No chain/target/match by that name.可使用如下命令重启docker因端口占用systemctl restartdocker进入jenkinslocalhost是你服务器的IPhttp://localhost:8080/输入管理员密码进入‘自定义Jenkins’界面点击安装推荐的插件。有个别失败点击继续。作者这里使用了LTS就会出现个别失败安装最新版不会出现失败【已实测】创建第一个管理员用户名字建议admin密码一个自己容易记的一定要记住不然后续密码忘记修改很麻烦电子邮件地址填写真实用于后续发送邮件使用。点击保存并继续实例配置容易IP不会变的话可以点击‘保存并完成’否则点击‘现在不要’。Welcome to Jenkins!成功工作记录切换default.json源提高插件安装成功率。作者正在实验暂未成功切勿使用 sudosed-is/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.aliyun.com\/jenkins/g/mydata/jenkins_home/updates/default.jsonsudosed-is/http:\/\/www.google.com/http:\/\/www.baidu.com/g/mydata/jenkins_home/updates/default.json