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

#查看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

在这里插入图片描述
Centos7 docker安装和使用(持续部署各种软件)_第1张图片

2.docker镜像加速

docker拉取镜像太慢了,所以采用个镜像加速,简单修改配置文件实现。

#docker镜像加速
vim /etc/docker/daemon.json

#添加的源地址

{

    "registry-mirrors":["https://almtd3fa.mirror.aliyuncs.com"]      

}

Centos7 docker安装和使用(持续部署各种软件)_第2张图片

3.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

Centos7 docker安装和使用(持续部署各种软件)_第3张图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1 导入数据

先把主系统里的文件复制到容器,然后这里进入后su root可以进入管理员账户(密码:helowin),把文件夹的所有者改成oracle。后续就是【数据泵的操作】

#复制主系统里的文件到容器(cp后紧跟主系统的路径,然后是容器id,冒号后是容器的位置)
docker cp /home/test.sql 8cf9014a034a:/opt/sql

#修改文件夹所有者为oracle用户(xxx表示文件夹路径)
chown -R oracle:oinstall xxx

4.docker部署jenkins

先部署java和maven,然后安装jenkins镜像。

4.1 java部署

#检测自带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

4.1 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

4.3 jenkins部署

#下拉jenkins中文镜像
docker pull jenkinsci/blueocean

#创建jenkins挂载目录并授权
mkdir -p /var/jenkins_mount
chmod 777 /var/jenkins_mount

#创建并启动Jenkins容器(这里启动我加了很多附加条件,根据自己需要进行调整)
#(这里映射端口、挂载maven、jdk、tomcat和时间目录,注意最后是镜像名字)
#-p:映射端口,前面是服务器端口,后面是镜像端口。
#-v:挂载目录,前面是服务器挂载目录,后面是容器的工作目录
docker run -d -p 8088:8080 \
-v /var/jenkins_mount:/var/jenkins_home \
-v /opt/maven/apache-maven-3.6.3:/opt/maven/apache-maven-3.6.3  \
-v /usr/java/jdk1.8.0_11:/usr/java/jdk1.8.0_11 \
-v /opt/apache-tomcat-8.5.69:/opt/apache-tomcat-8.5.69 \
-v /etc/localtime:/etc/localtime --name Jenkins jenkinsci/blueocean

#进入jenkins容器
docker exec -it 容器ID bash

4.4参考

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

5.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连接
Centos7 docker安装和使用(持续部署各种软件)_第4张图片

6.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

你可能感兴趣的:(服务器运维,docker,容器,linux)