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

#启动docker
systemctl 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-reload
systemctl restart docker

3.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/tcp
firewall-cmd --reload
firewall-cmd --list-all

4.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 xxx

5.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/profile
export JAVA_HOME=/usr/java/jdk1.8.0_11 
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

#加载变量
source /etc/profile 
echo $JAVA_HOME 

#检测安装结果
java -version

5.2 maven部署

#安装wget
yum -y install wget

#wget下载maven
wget 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/profile
MAVEN_HOME=/opt/maven/apache-maven-3.6.1
export PATH=${MAVEN_HOME}/bin:${PATH}

#加载环境变量
source /etc/profile

#查看mvn安装情况
mvn -version

5.3 jenkins部署

#下拉jenkins中文镜像
docker pull jenkins/jenkins:latest

#创建jenkins挂载目录并授权
mkdir -p /var/jenkins_mount
chmod 775 /var/jenkins_mount
chown -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 bash

5.4参考

jenkins部署后续的jenkins操作参考这两篇文章:
1.安装jenkins
2.部署gitLab项目

6.mySql部署

#下载mysql镜像
docker pull mysql:5.7

#创建mysql挂载目录并授权
mkdir -p /opt
mkdir -p /opt/mysql
mkdir -p /opt/mysql/conf/
mkdir -p /opt/mysql/logs/
mkdir -p /opt/mysql/data/

#创建mysql配置文件
vim /opt/mysql/my.cnf
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_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 bash
docker 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.io
yum autoremove
yum install docker-ce-19.03.15 docker-ce-cli-19.03.* containerd.io
systemctl start docker
systemctl enable docker
docker --version

docker卸载容器

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
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值