常用操作

防火墙操作

查看防火状态
systemctl status firewalld
	service  iptables status
暂时关闭防火墙
systemctl stop firewalld
	service  iptables stop
永久关闭防火墙
systemctl disable firewalld
	chkconfig iptables off
重启防火墙
systemctl enable firewalld
	service iptables restart
永久关闭后重启
chkconfig iptables on

开放对应端口

查看9090端口是否开启
firewall-cmd --query-port=1935/tcp
先开启防火墙
systemctl start firewalld.service
开放指定端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent
#--zone #作用域
#--add-port=1935/tcp  #添加端口,格式为:端口/通讯协议
#--permanent  #永久生效,没有此参数重启后失效
重启防火墙
firewall-cmd --reload
查看端口号
netstat -ntlp   #查看当前所有tcp端口·
	netstat -ntulp |grep 1935   #查看所有1935端口使用情况·

安装jdk1.8

yum install java-1.8.0-openjdk* -y

安装vim

yum install vim -y

Centos7将/dev/mapper/centos-home磁盘空间转移到/dev/mapper/centos-root

#查看磁盘空间,每个人的磁盘名称可能不同
	df -h
	
	#备份home文件
	tar cvf /tmp/home.tar /home
	
	#卸载/home,如果无法卸载,先终止使用/home文件系统的进程再卸载
	umount /home        #(卸载)
	fuser -km /home/ 		#(终止)
	
	#删除/home所在的lv
	lvremove /dev/mapper/centos-home
	
	#扩展/root所在的lv
	lvextend -L +50G /dev/mapper/centos-root
	
	#扩展/root文件系统
	xfs_growfs /dev/mapper/centos-root
	
	#重新创建home lv (创建时计算好剩余的磁盘容量,建议比剩余小1G左右,如果刚好和剩余容量一样可能会报错)
	lvcreate -L 50G -n /dev/mapper/centos-home 
	
	#创建文件系统
	mkfs.xfs /dev/mapper/centos-home
	
	#挂载home
	mount /dev/mapper/centos-home
	
	#home文件恢复
	tar xvf /tmp/home.tar -C /home/
	
	#查看磁盘空间
	df -TH

安装docker

yum 包更新到最新
		yum update -y
		
	 安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动以来的
		yum install -y yum-utils device-mapper-persistent-data lvm2
		
	 设置yum源
		yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
		
	 安装docker 
		# 安装最新版
		yum install -y docker-ce
		# 指定版本安装
		yum -y install docker-ce-20.10.9-3.el7

	 启动 docker
	 	systemctl start docker 
	 
	 停止docker 
	 	systemctl stop docker 
	 #执行命令之后会出现如下提示:主要的意思就是docker已经停止了,但是可以随时被唤醒,所以使用docker命令就会启动
	 	Warning: Stopping docker.service, but it can still be activated by:
  		docker.socket
	 
	 重启docker 
	 	systemctl restart docker

	 设置开机自启
	 	systemctl enable docker

	 查看docker状态
	 	systemctl status docker
	 
	 查看docker版本信息
	 	# 简单信息
	 	docker -v
	 	# 查看docker的版本号,包括客户端、服务端、依赖的Go等
	 	docker version
	 	# 查看系统(docker)层面信息,包括管理的images, containers数等
	 	docker info
	 	
	 卸载docker
		#查看已安装的docker
		yum list installed|grep docker
		#卸载
		yum -y remove + 查看已安装的名字

docker常用命令

查看镜像
docker images
搜索镜像
docker search 镜像名称
拉取镜像
docker pull 镜像名称:版本号
删除镜像
docker rmi 镜像名称:版本号
镜像信息
vim /var/lib/docker/image/overlay2/repositories.json
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
创建容器
docker run -d -p 1337:1337 \
        --network kong-net \
        --name konga \
        -e "NODE_ENV=production"  \
        -e "DB_ADAPTER=postgres" \
        -e "DB_URI=postgresql://kong:kong@172.0.0.1:5432/konga" \
        pantsel/konga
eg: \是换行的意思
run参数:
-rm
	在容器退出时自动清理容器内部的文件系统
	在Docker容器退出时,默认容器内部的文件系统仍然被保留,以方便调试并保留用户数据.
	但是,对于前台运行的容器,由于其只是在开发调试过程中短期运行,其用户数据并无保留的必要.
	启动时设置-rm选项,这样在容器退出时就能够自动清理容器内部的文件系统.
-i 保持容器运行
-p 端口映射
-e 传递环境变量
-t 为容器重新分配一个伪输入终端
-d 以守护进程模式运行容器,退出后容器不会停止
-it创建一个交互式容器,推出后容器容器停止运行
-id创建一个守护容器;退出后容器不停止运行
–-name为创建的容器命名
进入容器
docker exec -it 容器名称 /bin/bash
	
	#eg:进入一个叫konga的容器
	docker exec -it konga /bin/bash
	
	# 在容器中执行了一个ping命令
	ping 127.0.0.1
	
	# 退出当前容器
	exit
启动容器
docker start 容器名称或者容器id
停止容器
docker stop 容器名称或者容器id
删除容器
docker rm 容器名称或者容器id
删除所有容器
docker rm `docker ps -aq`
停止所有容器
docker stop $(docker ps -a -q)
查看容器详细信息
docker inspect 容器名称
容器文件位置
cd /var/lib/docker/containers
删除所有镜像
rm -rf /var/lib/docker
网络模式
bridge:桥接docker(默认创建时,不指定网络驱动,将使用bridge模式)
none:不配置网络
host:和宿主机共享网络
例如:当你在容器上使用80端口访问其他应用,使用的是宿主机的80端口.
container:容器网络连通(用的少,局限很大)
查看docker下的网络列表
docker network ls
rm -rf /var/lib/docker
查看docker下的网络列表
docker network ls
查看单个网络详细信息
docker network inspect networkname
创建网络
docker network ls
查看docker下的网络列表
#不指定网络驱动时,默认创建的是bridge网络.
	docker network create networkname
删除网络
docker network rm networkname
日志相关
docker logs [OPTIONS] CONTAINER
Options参数
	--details: 显示更多的信息
	--follow(-f): 跟踪实时日志
	--since string: 显示自某个timestamp之后的日志,或相对时间,如40m(即40分钟)
	--tail string: 从日志末尾显示多少行日志, 默认是all
	--timestamps(-t): 显示时间戳
	--until string: 显示自某个timestamp之前的日志,或相对时间,如40m(即40分钟)
# 查看容器mysql 最近30分钟的日志:
	docker logs --since 30m mysql
# 查看容器mysql 某时间之后的日志:
	docker logs -t --since="2019-11-02T13:23:37" mysql
#查看容器mysql 某时间段日志:
	docker logs -t --since="2019-11-02T13:23:37" --until "2019-11-03T12:23:37" mysql
配置国内加速

菜鸟教程

docker 容器内部安装vim
#更新安装源: 
apt-get update
#安装vim: 
apt-get install vim

docker安装mysql8

拉取镜像
docker pull mysql
创建对应目录
用来映射外部文件 在/usr/local/docker/mysql下创建对应目录
mkdir data
	mkdir conf
	mkdir logs
	mkdir mysql-files
在conf中创建配置文件 my.cnf 内容如下
[mysqld]

#pid-file        = /var/run/mysqld/mysqld.pid

#socket          = /var/run/mysqld/mysqld.sock

#datadir         = /var/lib/mysql

#socket = /usr/mysql/mysqld.sock

#pid-file = /usr/mysql/mysqld.pid

datadir = /usr/local/docker/mysql/data

character_set_server = utf8mb4

collation_server = utf8mb4_bin

secure-file-priv= /var/lib/mysql

symbolic-links=0

!includedir /etc/mysql/conf.d/
给整个mysql目录赋权
chmod -R 777 mysql/*
创建容器
docker run -itd --name mysql \
-v /usr/local/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql/log:/var/log/mysql \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files/ \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=BdL2hv25meIFG8rQ mysql --lower_case_table_names=1
lower_case_table_names: 忽略大小写 ,mysql8 必须在这里配置 在配置文件中配置不会生效
修mysql密码以及可访问主机
进入容器
docker exec -it mysql /bin/bash
连接mysql
mysql -uroot -pBdL2hv25meIFG8rQ
使用mysql库
use mysql
修改访问主机以及密码等,设置为所有主机可访问
# mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接
	ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'BdL2hv25meIFG8rQ';
刷新
flush privileges;

docker 安装nacos

拉取镜像
docker pull nacos/nacos-server
nacos sql
/*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info   */
/******************************************/
CREATE TABLE `config_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) DEFAULT NULL,
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  `app_name` varchar(128) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `c_desc` varchar(256) DEFAULT NULL,
  `c_use` varchar(64) DEFAULT NULL,
  `effect` varchar(64) DEFAULT NULL,
  `type` varchar(64) DEFAULT NULL,
  `c_schema` text,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_aggr   */
/******************************************/
CREATE TABLE `config_info_aggr` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) NOT NULL COMMENT 'group_id',
  `datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
  `content` longtext NOT NULL COMMENT '内容',
  `gmt_modified` datetime NOT NULL COMMENT '修改时间',
  `app_name` varchar(128) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';


/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_beta   */
/******************************************/
CREATE TABLE `config_info_beta` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_tag   */
/******************************************/
CREATE TABLE `config_info_tag` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_tags_relation   */
/******************************************/
CREATE TABLE `config_tags_relation` (
  `id` bigint(20) NOT NULL COMMENT 'id',
  `tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
  `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `nid` bigint(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`nid`),
  UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = group_capacity   */
/******************************************/
CREATE TABLE `group_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = his_config_info   */
/******************************************/
CREATE TABLE `his_config_info` (
  `id` bigint(64) unsigned NOT NULL,
  `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `data_id` varchar(255) NOT NULL,
  `group_id` varchar(128) NOT NULL,
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL,
  `md5` varchar(32) DEFAULT NULL,
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `src_user` text,
  `src_ip` varchar(50) DEFAULT NULL,
  `op_type` char(10) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`nid`),
  KEY `idx_gmt_create` (`gmt_create`),
  KEY `idx_gmt_modified` (`gmt_modified`),
  KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';


/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = tenant_capacity   */
/******************************************/
CREATE TABLE `tenant_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';


CREATE TABLE `tenant_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `kp` varchar(128) NOT NULL COMMENT 'kp',
  `tenant_id` varchar(128) default '' COMMENT 'tenant_id',
  `tenant_name` varchar(128) default '' COMMENT 'tenant_name',
  `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
  `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
  `gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
  `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';

CREATE TABLE `users` (
	`username` varchar(50) NOT NULL PRIMARY KEY,
	`password` varchar(500) NOT NULL,
	`enabled` boolean NOT NULL
);

CREATE TABLE `roles` (
	`username` varchar(50) NOT NULL,
	`role` varchar(50) NOT NULL,
	UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);

CREATE TABLE `permissions` (
    `role` varchar(50) NOT NULL,
    `resource` varchar(255) NOT NULL,
    `action` varchar(8) NOT NULL,
    UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);

INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);

INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
启动容器
docker run -d \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库ip \
-e MYSQL_SERVICE_PORT=数据库端口 \
-e MYSQL_SERVICE_USER=数据库用户名 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
-e MYSQL_SERVICE_DB_NAME=数据库 \
-p 8848:8848 \
--name nacos \
nacos/nacos-server
低版本nacos不支持mysql8 需要自己拉取源码修改

docker 安装redis

拉取镜像
docker pull redis
创建目录 /usr/local/docker/redis/data 并赋权
chown -R 755 /usr/local/docker/redis/*
启动容器
# requirepass 设置密码 
	docker run -itd -v /usr/local/docker/redis/data:/data --name redis -p 6379:6379 redis --requirepass 4W7mgMQe5XIC1viI

docker安装mysql5.7

下载mysql镜像
docker pull mysql:5.7
创建目录
cd /usr/local
	/docker/mysql57
赋权
chmod -R 755 文件夹名
启动mysql
docker run -p 3306:3306 --name mysql57 -v  /usr/local/docker/mysql57/logs:/logs -v  /usr/local/docker/mysql57/data:/var/lib/mysql -e  MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

docker安装tomcat

查询redis镜像
docker search tomcat
安装最新镜像
docker pull tomcat:latest
创建目录
cd /usr/local/docker/
	mkdir tomcat
赋权
chown  -R 755 tomcat/
将war包上传到/usr/local/docker/tomcat/目录下
启动tomcat
docker run -itd  --privileged=true -v /usr/local/docker/tomcat/:/usr/local/tomcat/webapps/  -p 38702:8080 tomcat
	
	nohup java -jar ruoyi-admin.jar &
查看日志
首先进入容器
命令格式为:docker exec -it +容器id +命令
docker exec -ti 镜像的id /bin/bash
在容器内进入日志目录
cd /home/edt/logs/

docker安装nginx

拉取Nginx镜像
docker pull nginx:latest
创建文件夹及设置权限
mkdir -p /data/nginx
	mkdir -p /data/nginx/conf.d
	mkdir -p /data/wwwroot/html
	chown -R 1000:1000 /data/nginx
在/data/nginx创建nginx.conf
cd /data/nginx
	vim /data/nginx/nginx.conf
内容可以从nginx官网下载或者直接使用下面配置
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    client_max_body_size 20m;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
     
    gzip  on;
    gzip_buffers 32 4K;
    gzip_comp_level 6;
    gzip_min_length 100;
    gzip_types application/javascript text/css text/xml;
    #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
    gzip_disable "MSIE [1-6]\."; 
    gzip_vary on;

    include /etc/nginx/conf.d/*.conf;
}
创建容器
docker run --name nginx --restart=always -p 80:80 \
	--network=host \
	-v /data/nginx/conf.d:/etc/nginx/conf.d \
	-v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
	-v /data/nginx/logs:/var/log/nginx \
	-v /data/nginx/cert:/etc/nginx/cert \
	-v /data/wwwroot:/data/wwwroot \
	-d nginx
进入目录/data/nginx/conf.d
cd /data/nginx/conf.d
	
	vim /data/nginx/conf.d/default.conf
编辑default.conf配置文件
#配置内容如下
server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /data/wwwroot/html;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
切换到以下目录:
cd /data/wwwroot/html
	
	vim /data/wwwroot/html/50x.html
创建50x.html、index.html文件(该步骤可省略)
#50x.html
<!DOCTYPE html>
<html>
<head>
<title>Error</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>An error occurred.</h1>
<p>Sorry, the page you are looking for is currently unavailable.<br/>
Please try again later.</p>
<p>If you are the system administrator of this resource then you should check
the error log for details.</p>
<p><em>Faithfully yours, nginx.</em></p>
</body>
</html>
vim /data/wwwroot/html/50x.html
#index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
重启容器
docker restart nginx
访问页面域名或者ip,出现以下界面即为成功
index.html
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

docker安装jenkins

拉取镜像
docker pull jenkins
启动容器
docker run \
  -u root \
  -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /data/jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /etc/localtime:/etc/localtime \
  jenkinsci/blueocean
访问 ip:8080进入页面,需要输入初始化密码安装完成后,
根据页面提示从指定文件获取初始密码,因为jenkins容器
的目录已经挂载到宿主机的/data/jenkins_home目录,可以
直接从/data/jenkins_home/secrets/initialAdminPassword获取
cat /data/jenkins_home/secrets/initialAdminPassword
安装插件
插件路径:[Jenkins] -> [系统管理] -> [插件管理]
安装 所有SSH插件、所有git插件、所有maven插件
全局参数配置
全局工具配置路径:[Jenkins] -> [系统管理] -> [全局工具配置]
安装JDK、Maven、Node、Git,可以选择自动安装,jenkins会帮助下载安装配置,也可以手动安装,安装完之后需要再指定安装目录
注意:因为这边是选择自动安装,所以在第一次构建任务安装maven后,再来配置maven的默认全局 settings路径
(插件安装路径:/var/jenkins_home/tools,可以在构建任务的”控制台输出“的详细信息中找到)
系统配置
系统配置路径:[Jenkins] -> [系统管理] -> [系统配置]
配置ssh server,主要填写主机地址、端口、用户名、密码、部署服务的远程目录等信息;

安装seata

拉取容器
docker pull seataio/seata-server:1.2.0
启动容器
docker run -d --name seata-server -p 8091:8091 -d  -e SEATA_IP=ip  seataio/seata-server:1.2.0
将docker文件拷贝到宿主机
docker cp seata-server:/seata-server/resources /data/seata-service
进入到拷贝出的配置文件路径
cd /data/seata-service
修改file.conf配置文件
## transaction log store, only used in seata-server
    store {
      ## store mode: file、db
      mode = "db"
    
      ## file store property
      file {
        ## store location dir
        dir = "sessionStore"
        # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
        maxBranchSessionSize = 16384
        # globe session size , if exceeded throws exceptions
        maxGlobalSessionSize = 512
        # file buffer size , if exceeded allocate new buffer
        fileWriteBufferCacheSize = 16384
        # when recover batch read size
        sessionReloadReadSize = 100
        # async, sync
        flushDiskMode = async
      }
    
      ## database store property
     db {
        ## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc.
        datasource = "druid"
        ## mysql/oracle/postgresql/h2/oceanbase etc.
        dbType = "mysql"
        driverClassName = "com.mysql.cj.jdbc.Driver"
        ## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param
        url = "jdbc:mysql://ip:host/seata-server?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"
        user = "user"
        password = "password"
        minConn = 5
        maxConn = 100
        globalTable = "global_table"
        branchTable = "branch_table"
        lockTable = "lock_table"
        queryLimit = 100
        maxWait = 5000
      }
    
    }
修改registry.conf配置文件
registry {
      # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
      type = "nacos"
    	#nacos相关配置
    	  nacos {
    		application = "seata-server"
    		serverAddr = "ip:host"
    		group = "SEATA_GROUP"
    		namespace = "1d7d9d31-60d4-4a92-8779-9354499caefd"
    		cluster = "default"
    		username = ""
    		password = ""
    	  }
    	  eureka {
    		serviceUrl = "http://localhost:8761/eureka"
    		application = "default"
    		weight = "1"
    	  }
    	  redis {
    		serverAddr = "localhost:6379"
    		db = 0
    		password = ""
    		cluster = "default"
    		timeout = 0
    	  }
    	  zk {
    		cluster = "default"
    		serverAddr = "127.0.0.1:2181"
    		sessionTimeout = 6000
    		connectTimeout = 2000
    		username = ""
    		password = ""
    	  }
    	  consul {
    		cluster = "default"
    		serverAddr = "127.0.0.1:8500"
    	  }
    	  etcd3 {
    		cluster = "default"
    		serverAddr = "http://localhost:2379"
    	  }
    	  sofa {
    		serverAddr = "127.0.0.1:9603"
    		application = "default"
    		region = "DEFAULT_ZONE"
    		datacenter = "DefaultDataCenter"
    		cluster = "default"
    		group = "SEATA_GROUP"
    		addressWaitTime = "3000"
    	  }
    	  file {
    		name = "file.conf"
    	  }
    	config {
    	  # file、nacos 、apollo、zk、consul、etcd3
    	  type = "nacos"
    
    	  nacos {
    			  serverAddr = "ip:host"
    			  group = "DEFAULT_GROUP"
    			  namespace = "1d7d9d31-60d4-4a92-8779-9354499caefd"
    			  cluster = "default"
    			  username = ""
    			  password = ""   
    	  }
    	  consul {
    		serverAddr = "127.0.0.1:8500"
    	  }
    	  apollo {
    		appId = "seata-server"
    		apolloMeta = "http://ip:8801"
    		namespace = "application"
    	  }
    	  zk {
    		serverAddr = "127.0.0.1:2181"
    		sessionTimeout = 6000
    		connectTimeout = 2000
    		username = ""
    		password = ""
    	  }
    	  etcd3 {
    		serverAddr = "http://localhost:2379"
    	  }
    	  file {
    		name = "file.conf"
    	  }
    	}
    }
将修改好的配置文件拷贝到docker容器
docker cp registry.conf seata-server:/seata-server/resources
    docker cp file.conf seata-server:/seata-server/resources
重启seata-server容器
docker restart seata-server
查看日志确定当前容器是否启动成功
docker logs -f -t --tail 300 seata-server
启动成功日志如下
2021-08-19T03:25:03.932639708Z 2021-08-19 03:25:03.929 INFO [main]io.seata.server.ParameterParser.init:90 -The server is running in container.
    2021-08-19T03:25:03.988965910Z 2021-08-19 03:25:03.987 INFO [main]io.seata.config.FileConfiguration.<init>:121 -The configuration file used is registry.conf
    2021-08-19T03:25:04.016571862Z 2021-08-19 03:25:04.016 INFO [main]io.seata.config.FileConfiguration.<init>:121 -The configuration file used is file.conf
    2021-08-19T03:25:05.296386746Z 2021-08-19 03:25:05.295 INFO [main]com.alibaba.druid.pool.DruidDataSource.init:947 -{dataSource-1} inited
    2021-08-19T03:25:05.530374240Z 2021-08-19 03:25:05.529 INFO [main]io.seata.core.rpc.netty.RpcServerBootstrap.start:155 -Server started ... 
    2021-08-19T03:28:11.138642684Z 2021-08-19 03:28:11.137 INFO [ShutdownHook]io.seata.core.rpc.netty.RpcServer.destroy:69 -destroyed rpcServer
    2021-08-19T03:28:13.319503007Z 2021-08-19 03:28:13.316 INFO [main]io.seata.server.ParameterParser.init:90 -The server is running in container.
    2021-08-19T03:28:13.378379605Z 2021-08-19 03:28:13.376 INFO [main]io.seata.config.FileConfiguration.<init>:121 -The configuration file used is registry.conf
    2021-08-19T03:28:13.400914066Z 2021-08-19 03:28:13.400 INFO [main]io.seata.config.FileConfiguration.<init>:121 -The configuration file used is file.conf
    2021-08-19T03:28:14.683544245Z 2021-08-19 03:28:14.682 INFO [main]com.alibaba.druid.pool.DruidDataSource.init:947 -{dataSource-1} inited
    2021-08-19T03:28:14.901163968Z 2021-08-19 03:28:14.900 INFO [main]io.seata.core.rpc.netty.RpcServerBootstrap.start:155 -Server started ...
将修改好的配置文件拷贝到docker容器
nohup ./seata-server.sh -h ip -p 8091  >log.out 2>1 &
解决脚本运行失败问题
sh nacos-config.sh -h ip -p 8848 -g SEATA_GROUP -t 7c43eda4-1e24-4e77-89ef-9b7efc5c889e
开放seata端口
firewall-cmd --add-port=8091/tcp --permanent
    firewall-cmd --reload

docker安装mongo

拉取镜像
docker pull mongo
创建对应文件夹 和 配置文件
/usr/local/docker/mongo/data  /usr/local/docker/mongo/conf /usr/local/docker/mongo/log
conf 下创建mongodb.conf 配置文件 内容如下:
port=27017
#数据库文件存放目录
dbpath=/usr/local/docker/mongo/data
#日志文件存放路径
logpath=/usr/local/docker/mongo/log
#使用追加方式写日志
logappend=true
#以守护线程的方式运行,创建服务器进程
fork=true
#最大同时连接数
maxConns=100
#不启用验证
#noauth=true
#每次写入会记录一条操作日志
journal=true
#存储引擎有mmapv1、wiredTiger、mongorocks
storageEngine=wiredTiger
#访问IP
bind_ip=0.0.0.0
#用户验证
#auth=true
启动容器
docker run -d -p 27017:27017 -v /usr/local/docker/mongo/data:/data/db -v /usr/local/docker/mongo/conf:/data/conf -v /usr/local/docker/mongo/log:/data/log --name mongo mongo

docker安装 rabbitmq

拉取镜像
docker pull rabbitmq:management
启动容器
docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=kRa9Pj3ItJO12c7S -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
启动之后 通过http:ip:15672 访问   用户名:admin 密码:kRa9Pj3ItJO12c7S  如果没有设置RABBITMQ_DEFAULT_PASS 
和RABBITMQ_DEFAULT_USER 的话 用户名和密码 都是guest

docker 安装orcale11g

拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
启动容器
docker run -d -p 1521:1521 -v /data/oracle:/data/oracle --name oracle11 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
进入容器
#进入容器
docker exec -it oracle11 /bin/bash
#切换用户 root 密码 helowin
su root
#编辑profile配置文件 在文件最后面加上以下内容
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
#加载环境变量
source /etc/profile
#创建软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
#切换到oracle用户 注意空格-前后都有空格
 su - oracle
#登录sqlplus并修改sys、system用户密码
sqlplus /nolog
conn /as sysdba
# 修改system用户账号密码
alter user system identified by system;
#修改sys用户账号密码
alter user sys identified by system;
#创建内部管理员账号密码
create user test identified by test;
#将dba权限授权给内部管理员账号和密码
grant connect,resource,dba to test;
#修改密码规则策略为密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 
#修改数据库最大连接数据
alter system set processes=1000 scope=spfile;
#重启数据库
conn /as sysdba
#关闭数据库
shutdown immediate;
#启动数据库
startup;
#退出
exit;