CentOS7 Docker安装使用指南:从零开始部署各种软件
1652 字
8 分钟
CentOS7 Docker安装使用指南:从零开始部署各种软件
📝 本文基于作者实际部署经验,已在 CentOS7 上成功部署 Docker 环境并运行多个容器化应用。
docker命令集合
#启动docker所有容器docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)1.安装docker
官方建议内核为3.10及以上;在安装docker需要安装前置软件;
#查看当前内核版本号uname -r
#前置软件安装yum install -y yum-utils device-mapper-persistent-data lvm2
#设置中央仓库yum源yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo#上面不行就用阿里yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#查看docker版本yum list docker-ce --showduplicates | sort -r
#执行安装,结尾是版本号yum -y install docker-ce-18.03.1.ce
#启动dockersystemctl start docker
#设置docker开机自启动systemctl enable docker

2.docker镜像加速
docker拉取镜像太慢了,所以采用个镜像加速,简单修改配置文件实现。
#docker镜像加速vim /etc/docker/daemon.json
#添加的源地址{ "registry-mirrors" : [ "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com", "https://cr.console.aliyun.com/" ]}#添加后记得加载和重启下systemctl daemon-reloadsystemctl restart docker3.Portainer安装
一款开源的轻量级容器管理工具,谁用都舒服,而且很清凉。
docker volume create portainer_data
#下个中文包(这是我的路径:/home/docker/volume/portainer/pubilc)wget https://github.com/eysp/public/archive/refs/tags/public.tar.gz
#拉镜像并安装docker run -d --restart=always \--name="portainerUI" \-p 9000:9000 \-v /var/run/docker.sock:/var/run/docker.sock \-v /home/docker/volume/portainer/pubilc:/public \-v portainer_data:/data \portainer/portainer-ce:2.9.1
#直接访问9000端口设置完密码,会要求你重启容器docker restart portainerUI
#开个防火墙firewall-cmd --permanent --add-port=9000/tcpfirewall-cmd --reloadfirewall-cmd --list-all4.docker部署oracle 11g
拉取镜像,然后查看本地镜像,运行容器,查看容器状态,连接oracle进行操作。
#拉取阿里云 oracle 11g镜像及启动docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
#查看本地镜像docker images
#运行容器docker run -d -p 1521:1521 --name oracle-11g 3fa112fd3642
#查看容器状态docker ps
#进入oracle容器(建议手打)docker exec -it oracle-11g /bin/bash



4.1 导入数据
先把主系统里的文件复制到容器,然后这里进入后su root可以进入管理员账户(密码:helowin),把文件夹的所有者改成oracle。后续就是【数据泵的操作】
#复制主系统里的文件到容器(cp后紧跟主系统的路径,然后是容器id,冒号后是容器的位置)docker cp /home/test.sql 8cf9014a034a:/opt/sql
#修改文件夹所有者为oracle用户(xxx表示文件夹路径)chown -R oracle:oinstall xxx5.docker部署jenkins
先部署java和maven,然后安装jenkins镜像。
5.1 java源码部署
这里采用源码安装的方式,因为只需要供jenkins调用就好,没必要配置给宿主机。 源码部署只需要解压即可,下面是配置给宿主机的方式。
#检测自带java版本(有的话就不需要部署,但是还是建议用自己公司的开发版本)rpm -qa | grep java
#删除没用的版本(检测到自带的没用的就删了,避免冲突)rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64 java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64 java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64 java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
#rpm安装(这里的版本是我自己上传的,每个人不一样百度即可)rpm -ivh /opt/jdk-8u11-linux-x64.rpm
#配置变量vim /etc/profileexport JAVA_HOME=/usr/java/jdk1.8.0_11export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
#加载变量source /etc/profileecho $JAVA_HOME
#检测安装结果java -version5.2 maven部署
#安装wgetyum -y install wget
#wget下载mavenwget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
#解压tar -zxvf apache-maven-3.6.3-bin.tar.gz
#配置环境变量(MAVEN_HOME后面表示maven路径,每个人不一样)vi /etc/profileMAVEN_HOME=/opt/maven/apache-maven-3.6.1export PATH=${MAVEN_HOME}/bin:${PATH}
#加载环境变量source /etc/profile
#查看mvn安装情况mvn -version5.3 jenkins部署
#下拉jenkins中文镜像docker pull jenkins/jenkins:latest
#创建jenkins挂载目录并授权mkdir -p /var/jenkins_mountchmod 775 /var/jenkins_mountchown -R 1000:1000 /var/jenkins_mount
#创建并启动Jenkins容器(这里启动我加了很多附加条件,根据自己需要进行调整)#(这里映射端口、挂载maven、jdk、tomcat和时间目录,注意最后是镜像名字)#-p:映射端口,前面是服务器端口,后面是镜像端口。#-v:挂载目录,前面是服务器挂载目录,后面是容器的工作目录docker run -d -p 8088:8080 \-v /var/jenkins_mount:/var/jenkins_home \-v /opt/apache-maven-3.6.3:/opt/apache-maven-3.6.3 \-v /opt/jdk1.8.0_281:/opt/jdk1.8.0_281 \-v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:latest
#进入jenkins容器docker exec -it 容器ID bash5.4参考
jenkins部署后续的jenkins操作参考这两篇文章: 1.安装jenkins 2.部署gitLab项目
6.mySql部署
#下载mysql镜像docker pull mysql:5.7
#创建mysql挂载目录并授权mkdir -p /optmkdir -p /opt/mysqlmkdir -p /opt/mysql/conf/mkdir -p /opt/mysql/logs/mkdir -p /opt/mysql/data/
#创建mysql配置文件vim /opt/mysql/my.cnf[mysqld]user=mysqlcharacter-set-server=utf8default_authentication_plugin=mysql_native_passwordsecure_file_priv=/var/lib/mysqlexpire_logs_days=7sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONmax_connections=1000
[client]default-character-set=utf8
[mysql]default-character-set=utf8这里我把映射端口改成3307避免本地的mysql冲突,云服务器记得开放端口
#创建容器,并后台启动docker run --restart=always --privileged=true \-v /opt/mysql/my.cnf:/etc/mysql/my.cnf \-v /opt/mysql/logs:/logs \-v /opt/mysql/data:/var/lib/mysql \-v /opt/mysql/conf:/etc/mysql/conf.d \-p 3307:3306 --name my-mysql \-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
#本地进入mysql容器(两种方式均可)docker exec -it 容器ID bashdocker exec -it 容器name /bin/bash会碰到无法navicate无法连接问题,提示密码已经正常,这是由于5.7要专门开启ip登陆的权限,下面是命令。
#记得先登录mysql(回车输入密码)mysql -u root -p
#使用数据库use mysql;
#查询权限select host, user from user;
#给root及其密码权限GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
#关闭远程登陆权限update user set host = "127.0.0.1" where user = "root" and host = "%";
#刷新flush privileges;
测试navicate连接

题外
docker降级
yum remove docker-ce docker-ce-cli containerd.ioyum autoremoveyum install docker-ce-19.03.15 docker-ce-cli-19.03.* containerd.iosystemctl start dockersystemctl enable dockerdocker --versiondocker卸载容器
1.查看正在运行的容器2.先暂停启动的容器
3.卸载容器
#查看正在运行的容器docker ps
#查看所有容器(-a: all)docker ps -a
#启动暂停容器docker start 容器id
#暂停指定容器docker stop 容器id
#删除指定容器docker rm 容器id
#删除指定镜像docker rmi 镜像id
#容器启动失败查看日志docker logs 镜像id相关推荐
- NAS搭建家庭影视库:Jellyfin+Docker从零开始 - Docker 容器化部署实战
- 青龙面板使用教程:Docker部署定时任务全攻略 - Docker 自动化应用
- CentOS7服务开机自启动配置:Nginx等常用服务 - 服务管理进阶
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
CentOS7 Docker安装使用指南:从零开始部署各种软件
https://blog.wmovie.site/posts/centos7-docker-guide/ 相关文章 智能推荐
1
NAS搭建家庭影视库:Jellyfin+Docker从零开始
NAS私有云 使用Docker在群晖NAS上部署Transmission、Emby、NASTool等工具,搭建完整的家庭影视库方案。
2
群晖NAS入门教程:从零开始搭建家庭云盘和影视库
NAS私有云 从群晖安装到Jellyfin影视库、NextCloud云盘、DDNS公网访问、企业微信通知等全套教程。
3
CentOS7安装Jenkins:从零开始搭建CI/CD环境
运维自动化 在CentOS7上安装Jenkins持续集成工具,包括JDK配置、插件源修改、中文插件安装及常见踩坑记录。
4
青龙面板使用教程:Docker部署定时任务全攻略
运维自动化 玩NAS除了看看电影,还得玩转Docker,这期讲的就是青龙面板,一个跑脚本的神器。
5
宝塔面板部署项目踩坑记录:PHP/Java/Node.js
运维自动化 宝塔面板部署各类项目的实战经验,包括PHP、Java、Node.js等框架的部署流程和常见问题解决。
随机文章 随机推荐