linux基本命令 docker部署常用镜像

常用操作

防火墙操作

查看防火状态
	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:[email protected]: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>


Error<<span class="token operator">/</span>title>
<style>
    body <span class="token punctuation">{</span>
        width: 35em<span class="token punctuation">;</span>
        margin: 0 auto<span class="token punctuation">;</span>
        font<span class="token operator">-</span>family: Tahoma<span class="token punctuation">,</span> Verdana<span class="token punctuation">,</span> Arial<span class="token punctuation">,</span> sans<span class="token operator">-</span>serif<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<<span class="token operator">/</span>style>
<<span class="token operator">/</span>head>
<body>
<h1>An error occurred<span class="token punctuation">.</span><<span class="token operator">/</span>h1>
<p>Sorry<span class="token punctuation">,</span> the page you are looking <span class="token keyword">for</span> is currently unavailable<span class="token punctuation">.</span><br<span class="token operator">/</span>>
Please <span class="token keyword">try</span> again later<span class="token punctuation">.</span><<span class="token operator">/</span>p>
<p><span class="token keyword">If</span> you are the system administrator of this resource then you should check
the error log <span class="token keyword">for</span> details<span class="token punctuation">.</span><<span class="token operator">/</span>p>
<p><em>Faithfully yours<span class="token punctuation">,</span> nginx<span class="token punctuation">.</span><<span class="token operator">/</span>em><<span class="token operator">/</span>p>
<<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>
</code></pre> 
  <pre><code class="prism language-powershell">	vim <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>wwwroot<span class="token operator">/</span>html<span class="token operator">/</span>50x<span class="token punctuation">.</span>html
</code></pre> 
  <pre><code class="prism language-powershell">	<span class="token comment">#index.html</span>
<<span class="token operator">!</span>DOCTYPE html>
<html>
<head>
<title>Welcome to nginx<span class="token operator">!</span><<span class="token operator">/</span>title>
<style>
    body <span class="token punctuation">{</span>
        width: 35em<span class="token punctuation">;</span>
        margin: 0 auto<span class="token punctuation">;</span>
        font<span class="token operator">-</span>family: Tahoma<span class="token punctuation">,</span> Verdana<span class="token punctuation">,</span> Arial<span class="token punctuation">,</span> sans<span class="token operator">-</span>serif<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<<span class="token operator">/</span>style>
<<span class="token operator">/</span>head>
<body>
<h1>Welcome to nginx<span class="token operator">!</span><<span class="token operator">/</span>h1>
<p><span class="token keyword">If</span> you see this page<span class="token punctuation">,</span> the nginx web server is successfully installed and
working<span class="token punctuation">.</span> Further configuration is required<span class="token punctuation">.</span><<span class="token operator">/</span>p>

<p><span class="token keyword">For</span> online documentation and support please refer to
<a href=<span class="token string">"http://nginx.org/"</span>>nginx<span class="token punctuation">.</span>org<<span class="token operator">/</span>a><span class="token punctuation">.</span><br<span class="token operator">/</span>>
Commercial support is available at
<a href=<span class="token string">"http://nginx.com/"</span>>nginx<span class="token punctuation">.</span>com<<span class="token operator">/</span>a><span class="token punctuation">.</span><<span class="token operator">/</span>p>

<p><em>Thank you <span class="token keyword">for</span> <span class="token keyword">using</span> nginx<span class="token punctuation">.</span><<span class="token operator">/</span>em><<span class="token operator">/</span>p>
<<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>
</code></pre> 
  <h5>重启容器</h5> 
  <pre><code class="prism language-powershell">	docker restart nginx
</code></pre> 
  <h5>访问页面域名或者ip,出现以下界面即为成功</h5> 
  <pre><code class="prism language-html">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.
</code></pre> 
  <h2>docker安装jenkins</h2> 
  <h5>拉取镜像</h5> 
  <pre><code class="prism language-powershell">	docker pull jenkins
</code></pre> 
  <h5>启动容器</h5> 
  <pre><code class="prism language-powershell">docker run \
  <span class="token operator">-</span>u root \
  <span class="token operator">-</span>d \
  <span class="token operator">--</span>name jenkins \
  <span class="token operator">-</span>p 8080:8080 \
  <span class="token operator">-</span>p 50000:50000 \
  <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>jenkins_home:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>jenkins_home \
  <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>run<span class="token operator">/</span>docker<span class="token punctuation">.</span>sock:<span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>run<span class="token operator">/</span>docker<span class="token punctuation">.</span>sock \
  <span class="token operator">-</span>v <span class="token operator">/</span>etc<span class="token operator">/</span>localtime:<span class="token operator">/</span>etc<span class="token operator">/</span>localtime \
  jenkinsci<span class="token operator">/</span>blueocean
</code></pre> 
  <pre><code>访问 ip:8080进入页面,需要输入初始化密码安装完成后,
根据页面提示从指定文件获取初始密码,因为jenkins容器
的目录已经挂载到宿主机的/data/jenkins_home目录,可以
直接从/data/jenkins_home/secrets/initialAdminPassword获取
</code></pre> 
  <pre><code class="prism language-powershell">	<span class="token function">cat</span> <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>jenkins_home<span class="token operator">/</span>secrets<span class="token operator">/</span>initialAdminPassword
</code></pre> 
  <h5>安装插件</h5> 
  <pre><code>插件路径:[Jenkins] -> [系统管理] -> [插件管理]
安装 所有SSH插件、所有git插件、所有maven插件
</code></pre> 
  <h5>全局参数配置</h5> 
  <pre><code>全局工具配置路径:[Jenkins] -> [系统管理] -> [全局工具配置]
安装JDK、Maven、Node、Git,可以选择自动安装,jenkins会帮助下载安装配置,也可以手动安装,安装完之后需要再指定安装目录
注意:因为这边是选择自动安装,所以在第一次构建任务安装maven后,再来配置maven的默认全局 settings路径
(插件安装路径:/var/jenkins_home/tools,可以在构建任务的”控制台输出“的详细信息中找到)
</code></pre> 
  <h5>系统配置</h5> 
  <pre><code>系统配置路径:[Jenkins] -> [系统管理] -> [系统配置]
配置ssh server,主要填写主机地址、端口、用户名、密码、部署服务的远程目录等信息;
</code></pre> 
  <h2>安装seata</h2> 
  <h5>拉取容器</h5> 
  <pre><code class="prism language-powershell"> 	docker pull seataio<span class="token operator">/</span>seata<span class="token operator">-</span>server:1<span class="token punctuation">.</span>2<span class="token punctuation">.</span>0
</code></pre> 
  <h5>启动容器</h5> 
  <pre><code class="prism language-powershell">	docker run <span class="token operator">-</span>d <span class="token operator">--</span>name seata<span class="token operator">-</span>server <span class="token operator">-</span>p 8091:8091 <span class="token operator">-</span>d  <span class="token operator">-</span>e SEATA_IP=ip  seataio<span class="token operator">/</span>seata<span class="token operator">-</span>server:1<span class="token punctuation">.</span>2<span class="token punctuation">.</span>0
</code></pre> 
  <h5>将docker文件拷贝到宿主机</h5> 
  <pre><code class="prism language-powershell">	docker <span class="token function">cp</span> seata<span class="token operator">-</span>server:<span class="token operator">/</span>seata<span class="token operator">-</span>server<span class="token operator">/</span>resources <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>seata<span class="token operator">-</span>service
</code></pre> 
  <h5>进入到拷贝出的配置文件路径</h5> 
  <pre><code class="prism language-powershell">	 cd <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>seata<span class="token operator">-</span>service
</code></pre> 
  <h5>修改file.conf配置文件</h5> 
  <pre><code class="prism language-powershell">	 <span class="token comment">## transaction log store, only used in seata-server</span>
    store <span class="token punctuation">{</span>
      <span class="token comment">## store mode: file、db</span>
      mode = <span class="token string">"db"</span>
    
      <span class="token comment">## file store property</span>
      file <span class="token punctuation">{</span>
        <span class="token comment">## store location dir</span>
        <span class="token function">dir</span> = <span class="token string">"sessionStore"</span>
        <span class="token comment"># branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions</span>
        maxBranchSessionSize = 16384
        <span class="token comment"># globe session size , if exceeded throws exceptions</span>
        maxGlobalSessionSize = 512
        <span class="token comment"># file buffer size , if exceeded allocate new buffer</span>
        fileWriteBufferCacheSize = 16384
        <span class="token comment"># when recover batch read size</span>
        sessionReloadReadSize = 100
        <span class="token comment"># async, sync</span>
        flushDiskMode = async
      <span class="token punctuation">}</span>
    
      <span class="token comment">## database store property</span>
     db <span class="token punctuation">{</span>
        <span class="token comment">## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc.</span>
        datasource = <span class="token string">"druid"</span>
        <span class="token comment">## mysql/oracle/postgresql/h2/oceanbase etc.</span>
        dbType = <span class="token string">"mysql"</span>
        driverClassName = <span class="token string">"com.mysql.cj.jdbc.Driver"</span>
        <span class="token comment">## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param</span>
        url = <span class="token string">"jdbc:mysql://ip:host/seata-server?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"</span>
        user = <span class="token string">"user"</span>
        password = <span class="token string">"password"</span>
        minConn = 5
        maxConn = 100
        globalTable = <span class="token string">"global_table"</span>
        branchTable = <span class="token string">"branch_table"</span>
        lockTable = <span class="token string">"lock_table"</span>
        queryLimit = 100
        maxWait = 5000
      <span class="token punctuation">}</span>
    
    <span class="token punctuation">}</span>
</code></pre> 
  <h5>修改registry.conf配置文件</h5> 
  <pre><code class="prism language-powershell">	 registry <span class="token punctuation">{</span>
      <span class="token comment"># file 、nacos 、eureka、redis、zk、consul、etcd3、sofa</span>
      <span class="token function">type</span> = <span class="token string">"nacos"</span>
    	<span class="token comment">#nacos相关配置</span>
    	  nacos <span class="token punctuation">{</span>
    		application = <span class="token string">"seata-server"</span>
    		serverAddr = <span class="token string">"ip:host"</span>
    		<span class="token function">group</span> = <span class="token string">"SEATA_GROUP"</span>
    		namespace = <span class="token string">"1d7d9d31-60d4-4a92-8779-9354499caefd"</span>
    		cluster = <span class="token string">"default"</span>
    		username = <span class="token string">""</span>
    		password = <span class="token string">""</span>
    	  <span class="token punctuation">}</span>
    	  eureka <span class="token punctuation">{</span>
    		serviceUrl = <span class="token string">"http://localhost:8761/eureka"</span>
    		application = <span class="token string">"default"</span>
    		weight = <span class="token string">"1"</span>
    	  <span class="token punctuation">}</span>
    	  redis <span class="token punctuation">{</span>
    		serverAddr = <span class="token string">"localhost:6379"</span>
    		db = 0
    		password = <span class="token string">""</span>
    		cluster = <span class="token string">"default"</span>
    		timeout = 0
    	  <span class="token punctuation">}</span>
    	  zk <span class="token punctuation">{</span>
    		cluster = <span class="token string">"default"</span>
    		serverAddr = <span class="token string">"127.0.0.1:2181"</span>
    		sessionTimeout = 6000
    		connectTimeout = 2000
    		username = <span class="token string">""</span>
    		password = <span class="token string">""</span>
    	  <span class="token punctuation">}</span>
    	  consul <span class="token punctuation">{</span>
    		cluster = <span class="token string">"default"</span>
    		serverAddr = <span class="token string">"127.0.0.1:8500"</span>
    	  <span class="token punctuation">}</span>
    	  etcd3 <span class="token punctuation">{</span>
    		cluster = <span class="token string">"default"</span>
    		serverAddr = <span class="token string">"http://localhost:2379"</span>
    	  <span class="token punctuation">}</span>
    	  sofa <span class="token punctuation">{</span>
    		serverAddr = <span class="token string">"127.0.0.1:9603"</span>
    		application = <span class="token string">"default"</span>
    		region = <span class="token string">"DEFAULT_ZONE"</span>
    		datacenter = <span class="token string">"DefaultDataCenter"</span>
    		cluster = <span class="token string">"default"</span>
    		<span class="token function">group</span> = <span class="token string">"SEATA_GROUP"</span>
    		addressWaitTime = <span class="token string">"3000"</span>
    	  <span class="token punctuation">}</span>
    	  file <span class="token punctuation">{</span>
    		name = <span class="token string">"file.conf"</span>
    	  <span class="token punctuation">}</span>
    	config <span class="token punctuation">{</span>
    	  <span class="token comment"># file、nacos 、apollo、zk、consul、etcd3</span>
    	  <span class="token function">type</span> = <span class="token string">"nacos"</span>
    
    	  nacos <span class="token punctuation">{</span>
    			  serverAddr = <span class="token string">"ip:host"</span>
    			  <span class="token function">group</span> = <span class="token string">"DEFAULT_GROUP"</span>
    			  namespace = <span class="token string">"1d7d9d31-60d4-4a92-8779-9354499caefd"</span>
    			  cluster = <span class="token string">"default"</span>
    			  username = <span class="token string">""</span>
    			  password = <span class="token string">""</span>   
    	  <span class="token punctuation">}</span>
    	  consul <span class="token punctuation">{</span>
    		serverAddr = <span class="token string">"127.0.0.1:8500"</span>
    	  <span class="token punctuation">}</span>
    	  apollo <span class="token punctuation">{</span>
    		appId = <span class="token string">"seata-server"</span>
    		apolloMeta = <span class="token string">"http://ip:8801"</span>
    		namespace = <span class="token string">"application"</span>
    	  <span class="token punctuation">}</span>
    	  zk <span class="token punctuation">{</span>
    		serverAddr = <span class="token string">"127.0.0.1:2181"</span>
    		sessionTimeout = 6000
    		connectTimeout = 2000
    		username = <span class="token string">""</span>
    		password = <span class="token string">""</span>
    	  <span class="token punctuation">}</span>
    	  etcd3 <span class="token punctuation">{</span>
    		serverAddr = <span class="token string">"http://localhost:2379"</span>
    	  <span class="token punctuation">}</span>
    	  file <span class="token punctuation">{</span>
    		name = <span class="token string">"file.conf"</span>
    	  <span class="token punctuation">}</span>
    	<span class="token punctuation">}</span>
    <span class="token punctuation">}</span>
</code></pre> 
  <h5>将修改好的配置文件拷贝到docker容器</h5> 
  <pre><code class="prism language-powershell">	docker <span class="token function">cp</span> registry<span class="token punctuation">.</span>conf seata<span class="token operator">-</span>server:<span class="token operator">/</span>seata<span class="token operator">-</span>server<span class="token operator">/</span>resources
    docker <span class="token function">cp</span> file<span class="token punctuation">.</span>conf seata<span class="token operator">-</span>server:<span class="token operator">/</span>seata<span class="token operator">-</span>server<span class="token operator">/</span>resources
</code></pre> 
  <h5>重启seata-server容器</h5> 
  <pre><code class="prism language-powershell">	 docker restart seata<span class="token operator">-</span>server
</code></pre> 
  <h5>查看日志确定当前容器是否启动成功</h5> 
  <pre><code class="prism language-powershell">	 docker logs <span class="token operator">-</span>f <span class="token operator">-</span>t <span class="token operator">--</span>tail 300 seata<span class="token operator">-</span>server
</code></pre> 
  <h5>启动成功日志如下</h5> 
  <pre><code class="prism language-powershell">	 2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:25:03<span class="token punctuation">.</span>932639708Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:25:03<span class="token punctuation">.</span>929 INFO <span class="token namespace">[main]</span>io<span class="token punctuation">.</span>seata<span class="token punctuation">.</span>server<span class="token punctuation">.</span>ParameterParser<span class="token punctuation">.</span>init:90 <span class="token operator">-</span>The server is running in container<span class="token punctuation">.</span>
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:25:03<span class="token punctuation">.</span>988965910Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:25:03<span class="token punctuation">.</span>987 INFO <span class="token namespace">[main]</span>io<span class="token punctuation">.</span>seata<span class="token punctuation">.</span>config<span class="token punctuation">.</span>FileConfiguration<span class="token punctuation">.</span><init>:121 <span class="token operator">-</span>The configuration file used is registry<span class="token punctuation">.</span>conf
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:25:04<span class="token punctuation">.</span>016571862Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:25:04<span class="token punctuation">.</span>016 INFO <span class="token namespace">[main]</span>io<span class="token punctuation">.</span>seata<span class="token punctuation">.</span>config<span class="token punctuation">.</span>FileConfiguration<span class="token punctuation">.</span><init>:121 <span class="token operator">-</span>The configuration file used is file<span class="token punctuation">.</span>conf
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:25:05<span class="token punctuation">.</span>296386746Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:25:05<span class="token punctuation">.</span>295 INFO <span class="token namespace">[main]</span>com<span class="token punctuation">.</span>alibaba<span class="token punctuation">.</span>druid<span class="token punctuation">.</span>pool<span class="token punctuation">.</span>DruidDataSource<span class="token punctuation">.</span>init:947 <span class="token operator">-</span><span class="token punctuation">{</span>dataSource<span class="token operator">-</span>1<span class="token punctuation">}</span> inited
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:25:05<span class="token punctuation">.</span>530374240Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:25:05<span class="token punctuation">.</span>529 INFO <span class="token namespace">[main]</span>io<span class="token punctuation">.</span>seata<span class="token punctuation">.</span>core<span class="token punctuation">.</span>rpc<span class="token punctuation">.</span>netty<span class="token punctuation">.</span>RpcServerBootstrap<span class="token punctuation">.</span><span class="token function">start</span>:155 <span class="token operator">-</span>Server started <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> 
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:28:11<span class="token punctuation">.</span>138642684Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:28:11<span class="token punctuation">.</span>137 INFO <span class="token namespace">[ShutdownHook]</span>io<span class="token punctuation">.</span>seata<span class="token punctuation">.</span>core<span class="token punctuation">.</span>rpc<span class="token punctuation">.</span>netty<span class="token punctuation">.</span>RpcServer<span class="token punctuation">.</span>destroy:69 <span class="token operator">-</span>destroyed rpcServer
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:28:13<span class="token punctuation">.</span>319503007Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:28:13<span class="token punctuation">.</span>316 INFO <span class="token namespace">[main]</span>io<span class="token punctuation">.</span>seata<span class="token punctuation">.</span>server<span class="token punctuation">.</span>ParameterParser<span class="token punctuation">.</span>init:90 <span class="token operator">-</span>The server is running in container<span class="token punctuation">.</span>
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:28:13<span class="token punctuation">.</span>378379605Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:28:13<span class="token punctuation">.</span>376 INFO <span class="token namespace">[main]</span>io<span class="token punctuation">.</span>seata<span class="token punctuation">.</span>config<span class="token punctuation">.</span>FileConfiguration<span class="token punctuation">.</span><init>:121 <span class="token operator">-</span>The configuration file used is registry<span class="token punctuation">.</span>conf
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:28:13<span class="token punctuation">.</span>400914066Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:28:13<span class="token punctuation">.</span>400 INFO <span class="token namespace">[main]</span>io<span class="token punctuation">.</span>seata<span class="token punctuation">.</span>config<span class="token punctuation">.</span>FileConfiguration<span class="token punctuation">.</span><init>:121 <span class="token operator">-</span>The configuration file used is file<span class="token punctuation">.</span>conf
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:28:14<span class="token punctuation">.</span>683544245Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:28:14<span class="token punctuation">.</span>682 INFO <span class="token namespace">[main]</span>com<span class="token punctuation">.</span>alibaba<span class="token punctuation">.</span>druid<span class="token punctuation">.</span>pool<span class="token punctuation">.</span>DruidDataSource<span class="token punctuation">.</span>init:947 <span class="token operator">-</span><span class="token punctuation">{</span>dataSource<span class="token operator">-</span>1<span class="token punctuation">}</span> inited
    2021<span class="token operator">-</span>08<span class="token operator">-</span>19T03:28:14<span class="token punctuation">.</span>901163968Z 2021<span class="token operator">-</span>08<span class="token operator">-</span>19 03:28:14<span class="token punctuation">.</span>900 INFO <span class="token namespace">[main]</span>io<span class="token punctuation">.</span>seata<span class="token punctuation">.</span>core<span class="token punctuation">.</span>rpc<span class="token punctuation">.</span>netty<span class="token punctuation">.</span>RpcServerBootstrap<span class="token punctuation">.</span><span class="token function">start</span>:155 <span class="token operator">-</span>Server started <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
</code></pre> 
  <h5>将修改好的配置文件拷贝到docker容器</h5> 
  <pre><code class="prism language-powershell">	 nohup <span class="token punctuation">.</span><span class="token operator">/</span>seata<span class="token operator">-</span>server<span class="token punctuation">.</span>sh <span class="token operator">-</span>h ip <span class="token operator">-</span>p 8091  >log<span class="token punctuation">.</span>out 2>1 &
</code></pre> 
  <h5>解决脚本运行失败问题</h5> 
  <pre><code class="prism language-powershell">	 sh nacos<span class="token operator">-</span>config<span class="token punctuation">.</span>sh <span class="token operator">-</span>h ip <span class="token operator">-</span>p 8848 <span class="token operator">-</span>g SEATA_GROUP <span class="token operator">-</span>t 7c43eda4<span class="token operator">-</span>1e24<span class="token operator">-</span>4e77<span class="token operator">-</span>89ef<span class="token operator">-</span>9b7efc5c889e
</code></pre> 
  <h5>开放seata端口</h5> 
  <pre><code class="prism language-powershell">	 firewall<span class="token operator">-</span>cmd <span class="token operator">--</span><span class="token function">add-port</span>=8091<span class="token operator">/</span>tcp <span class="token operator">--</span>permanent
    firewall<span class="token operator">-</span>cmd <span class="token operator">--</span>reload
</code></pre> 
  <h2>docker安装mongo</h2> 
  <h5>拉取镜像</h5> 
  <pre><code class="prism language-powershell">	docker pull mongo
</code></pre> 
  <h5>创建对应文件夹 和 配置文件</h5> 
  <pre><code>/usr/local/docker/mongo/data  /usr/local/docker/mongo/conf /usr/local/docker/mongo/log
conf 下创建mongodb.conf 配置文件 内容如下:
</code></pre> 
  <pre><code class="prism language-powershell">port=27017
<span class="token comment">#数据库文件存放目录</span>
dbpath=<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>docker<span class="token operator">/</span>mongo<span class="token operator">/</span><span class="token keyword">data</span>
<span class="token comment">#日志文件存放路径</span>
logpath=<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>docker<span class="token operator">/</span>mongo<span class="token operator">/</span>log
<span class="token comment">#使用追加方式写日志</span>
logappend=true
<span class="token comment">#以守护线程的方式运行,创建服务器进程</span>
fork=true
<span class="token comment">#最大同时连接数</span>
maxConns=100
<span class="token comment">#不启用验证</span>
<span class="token comment">#noauth=true</span>
<span class="token comment">#每次写入会记录一条操作日志</span>
journal=true
<span class="token comment">#存储引擎有mmapv1、wiredTiger、mongorocks</span>
storageEngine=wiredTiger
<span class="token comment">#访问IP</span>
bind_ip=0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0
<span class="token comment">#用户验证</span>
<span class="token comment">#auth=true</span>
</code></pre> 
  <h5>启动容器</h5> 
  <pre><code class="prism language-powershell">docker run <span class="token operator">-</span>d <span class="token operator">-</span>p 27017:27017 <span class="token operator">-</span>v <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>docker<span class="token operator">/</span>mongo<span class="token operator">/</span><span class="token keyword">data</span>:<span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>db <span class="token operator">-</span>v <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>docker<span class="token operator">/</span>mongo<span class="token operator">/</span>conf:<span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>conf <span class="token operator">-</span>v <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>docker<span class="token operator">/</span>mongo<span class="token operator">/</span>log:<span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>log <span class="token operator">--</span>name mongo mongo
</code></pre> 
  <h2>docker安装 rabbitmq</h2> 
  <h5>拉取镜像</h5> 
  <pre><code class="prism language-powershell">docker pull rabbitmq:management
</code></pre> 
  <h5>启动容器</h5> 
  <pre><code class="prism language-powershell">docker run <span class="token operator">-</span>d <span class="token operator">--</span>name rabbitmq <span class="token operator">-</span>e RABBITMQ_DEFAULT_USER=admin <span class="token operator">-</span>e RABBITMQ_DEFAULT_PASS=kRa9Pj3ItJO12c7S <span class="token operator">-</span>p 15672:15672 <span class="token operator">-</span>p 5672:5672 <span class="token operator">-</span>p 25672:25672 <span class="token operator">-</span>p 61613:61613 <span class="token operator">-</span>p 1883:1883 rabbitmq:management
</code></pre> 
  <pre><code>启动之后 通过http:ip:15672 访问   用户名:admin 密码:kRa9Pj3ItJO12c7S  如果没有设置RABBITMQ_DEFAULT_PASS 
和RABBITMQ_DEFAULT_USER 的话 用户名和密码 都是guest
</code></pre> 
  <h2>docker 安装orcale11g</h2> 
  <h5>拉取镜像</h5> 
  <pre><code class="prism language-powershell">docker pull registry<span class="token punctuation">.</span>cn<span class="token operator">-</span>hangzhou<span class="token punctuation">.</span>aliyuncs<span class="token punctuation">.</span>com<span class="token operator">/</span>helowin<span class="token operator">/</span>oracle_11g
</code></pre> 
  <h5>启动容器</h5> 
  <pre><code class="prism language-powershell">docker run <span class="token operator">-</span>d <span class="token operator">-</span>p 1521:1521 <span class="token operator">-</span>v <span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>oracle:<span class="token operator">/</span><span class="token keyword">data</span><span class="token operator">/</span>oracle <span class="token operator">--</span>name oracle11 registry<span class="token punctuation">.</span>cn<span class="token operator">-</span>hangzhou<span class="token punctuation">.</span>aliyuncs<span class="token punctuation">.</span>com<span class="token operator">/</span>helowin<span class="token operator">/</span>oracle_11g
</code></pre> 
  <h5>进入容器</h5> 
  <pre><code class="prism language-powershell"><span class="token comment">#进入容器</span>
docker exec <span class="token operator">-</span>it oracle11 <span class="token operator">/</span>bin<span class="token operator">/</span>bash
<span class="token comment">#切换用户 root 密码 helowin</span>
su root
<span class="token comment">#编辑profile配置文件 在文件最后面加上以下内容</span>
export ORACLE_HOME=<span class="token operator">/</span>home<span class="token operator">/</span>oracle<span class="token operator">/</span>app<span class="token operator">/</span>oracle<span class="token operator">/</span>product<span class="token operator">/</span>11<span class="token punctuation">.</span>2<span class="token punctuation">.</span>0<span class="token operator">/</span>dbhome_2
export ORACLE_SID=helowin
export PATH=<span class="token variable">$ORACLE_HOME</span><span class="token operator">/</span>bin:<span class="token variable">$PATH</span>
<span class="token comment">#加载环境变量</span>
source <span class="token operator">/</span>etc<span class="token operator">/</span>profile
<span class="token comment">#创建软连接</span>
ln <span class="token operator">-</span>s <span class="token variable">$ORACLE_HOME</span><span class="token operator">/</span>bin<span class="token operator">/</span>sqlplus <span class="token operator">/</span>usr<span class="token operator">/</span>bin
<span class="token comment">#切换到oracle用户 注意空格-前后都有空格</span>
 su <span class="token operator">-</span> oracle
<span class="token comment">#登录sqlplus并修改sys、system用户密码</span>
sqlplus <span class="token operator">/</span>nolog
conn <span class="token operator">/</span>as sysdba
<span class="token comment"># 修改system用户账号密码</span>
alter user system identified by system<span class="token punctuation">;</span>
<span class="token comment">#修改sys用户账号密码</span>
alter user sys identified by system<span class="token punctuation">;</span>
<span class="token comment">#创建内部管理员账号密码</span>
create user test identified by test<span class="token punctuation">;</span>
<span class="token comment">#将dba权限授权给内部管理员账号和密码</span>
grant connect<span class="token punctuation">,</span>resource<span class="token punctuation">,</span>dba to test<span class="token punctuation">;</span>
<span class="token comment">#修改密码规则策略为密码永不过期</span>
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED<span class="token punctuation">;</span> 
<span class="token comment">#修改数据库最大连接数据</span>
alter system <span class="token function">set</span> processes=1000 scope=spfile<span class="token punctuation">;</span>
<span class="token comment">#重启数据库</span>
conn <span class="token operator">/</span>as sysdba
<span class="token comment">#关闭数据库</span>
shutdown immediate<span class="token punctuation">;</span>
<span class="token comment">#启动数据库</span>
startup<span class="token punctuation">;</span>
<span class="token comment">#退出</span>
<span class="token keyword">exit</span><span class="token punctuation">;</span>
</code></pre> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1647467800937140224"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(linux,linux,docker)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1950227023859347456.htm"
                           title="Linux系统配置(应用程序)" target="_blank">Linux系统配置(应用程序)</a>
                        <span class="text-muted">1风天云月</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F/1.htm">应用程序</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85/1.htm">编译安装</a><a class="tag" taget="_blank" href="/search/rpm/1.htm">rpm</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a>
                        <div>目录前言一、应用程序概述1、命令与程序的关系2、程序的组成3、软件包封装类型二、RPM1、RPM概述2、RPM用法三、编译安装1、解包2、配置3、编译4、安装5、启用httpd服务结语前言在Linux中的应用程序被视为将软件包安装到系统中后产生的各种文档,其中包括可执行文件、配置文件、用户手册等内容,这些文档被组织为一个有机的整体,为用户提供特定的功能,因此对于“安装软件包”与“安装应用程序”这两</div>
                    </li>
                    <li><a href="/article/1950219166367674368.htm"
                           title="包含日志获取webshell" target="_blank">包含日志获取webshell</a>
                        <span class="text-muted">陈望_ning</span>

                        <div>日志文件关闭:Apache目录下的httpd.conf文件#ErrorLog"logs/error.log"#CustomLog"logs/access.log"common加#号为注释不产生日志文件如果去掉#将会在Apache/logs/目录下产生日志文件linux:access_logerror_logwindows:access.logerror.logaccess_log每一行记录了一次网</div>
                    </li>
                    <li><a href="/article/1950209621381672960.htm"
                           title="Android 应用权限管理详解" target="_blank">Android 应用权限管理详解</a>
                        <span class="text-muted"></span>

                        <div>文章目录1.权限类型2.权限请求机制3.权限组和分级4.权限管理的演进5.权限监控和SELinux强制访问控制6.应用权限审核和GooglePlayProtect7.开发者最佳实践8.用户权限管理9.Android应用沙箱模型10.ScopedStorage(分区存储)11.背景位置权限(BackgroundLocationAccess)12.权限回收和自动清理13.权限请求的用户体验设计14.G</div>
                    </li>
                    <li><a href="/article/1950202054706262016.htm"
                           title="centos7安装配置 Anaconda3" target="_blank">centos7安装配置 Anaconda3</a>
                        <span class="text-muted"></span>

                        <div>Anaconda是一个用于科学计算的Python发行版,Anaconda于Python,相当于centos于linux。下载[root@testsrc]#mwgethttps://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.shBegintodownload:Anaconda3-5.2.0-L</div>
                    </li>
                    <li><a href="/article/1950201927899869184.htm"
                           title="vllm本地台式机运行(3070显存8G)" target="_blank">vllm本地台式机运行(3070显存8G)</a>
                        <span class="text-muted">名明鸣冥</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/Qwen/1.htm">Qwen</a><a class="tag" taget="_blank" href="/search/vllm/1.htm">vllm</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E9%83%A8%E7%BD%B2/1.htm">大模型部署</a>
                        <div>ollama和vllm的对比这块对比网上都很多资料了,这边使用上简单感觉就是ollama很方便部署,占用资料更少,但后续性能会差点,各选项也不一样.ollama安装和使用和docker很像,就不赘述了,这里是看vllm的安装硬件情况介绍30708G显存+-------------------------------------------------------------------------</div>
                    </li>
                    <li><a href="/article/1950183520588591104.htm"
                           title="搭建云手机教程" target="_blank">搭建云手机教程</a>
                        <span class="text-muted">云博客-资源宝</span>
<a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA/1.htm">智能手机</a>
                        <div>搭建云手机教程本教程由分享:ziyouhua资源宝整理分享:www.httple.net首先检查自己vps是否支持这个项目sudoaptinstallcpu-checkerkvm-ok如果显示INFO:/dev/kvmexistsKVMaccelerationcanbeused表示支持,可以继续往下看ac13首先安装dockercurl-fsSLhttps://get.docker.com|sud</div>
                    </li>
                    <li><a href="/article/1950176839670493184.htm"
                           title="全局修改GitLab14默认语言为中文" target="_blank">全局修改GitLab14默认语言为中文</a>
                        <span class="text-muted"></span>

                        <div>GitLab安装成功后默认语言是英语,只有登录后才能手动指定为中文,且这个配置只对自己生效,经查阅资料后,总结全局修改GitLab14默认语言为中文方法如下:0.进入容器如果你用Docker部署的GitLab,那么需要使用命令sudodockerexec-itgitlab/bin/bash进入容器1.修改rails配置文件打开/opt/gitlab/embedded/service/gitlab-</div>
                    </li>
                    <li><a href="/article/1950175199089455104.htm"
                           title="PDF转Markdown - Python 实现方案与代码" target="_blank">PDF转Markdown - Python 实现方案与代码</a>
                        <span class="text-muted">Eiceblue</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/PDF/1.htm">PDF</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a>
                        <div>PDF作为广泛使用的文档格式,转换为轻量级标记语言Markdown后,可无缝集成到技术文档、博客平台和版本控制系统中,提高内容的可编辑性和可访问性。本文将详细介绍如何使用国产Spire.PDFforPython库将PDF文档转换为Markdown格式。技术优势:精准保留原始文档结构(段落/列表/表格)完整提取文本和图像内容无需Adobe依赖的纯Python实现支持Linux/Windows/mac</div>
                    </li>
                    <li><a href="/article/1950170537426743296.htm"
                           title="在Windows11上安装Linux操作系统的几种技术方案" target="_blank">在Windows11上安装Linux操作系统的几种技术方案</a>
                        <span class="text-muted">yuanpan</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>在Windows11上安装Linux主要有以下几种技术方案,每种方案适用于不同的需求场景:1.WindowsSubsystemforLinux(WSL)适用场景:开发、命令行工具、轻量级Linux环境支持发行版:Ubuntu、Debian、KaliLinux、Fedora等优点:轻量级:无需虚拟机,直接在Windows上运行Linux命令行环境。无缝集成:可访问Windows文件系统,支持VSCo</div>
                    </li>
                    <li><a href="/article/1950169523193704448.htm"
                           title="Claude Code 超详细完整指南(2025最新版)" target="_blank">Claude Code 超详细完整指南(2025最新版)</a>
                        <span class="text-muted">笙囧同学</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>终端AI编程助手|高频使用点+生态工具+完整命令参考+最新MCP配置目录快速开始(5分钟上手)详细安装指南系统要求Windows安装(WSL方案)macOS安装Linux安装安装验证配置与认证首次认证环境变量配置代理配置⚡基础命令详解启动命令会话管理文件操作Think模式完全指南MCP服务器配置详解MCP基础概念添加MCP服务器10个必备MCP服务器MCP故障排除记忆系统详解高级使用技巧成本控制策</div>
                    </li>
                    <li><a href="/article/1950166876634017792.htm"
                           title="如何在 Ubuntu 24.04 或 22.04 Linux 上安装和运行 Redis 服务器" target="_blank">如何在 Ubuntu 24.04 或 22.04 Linux 上安装和运行 Redis 服务器</a>
                        <span class="text-muted">山岚的运维笔记</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E5%8F%8A%E4%BD%BF%E7%94%A8/1.htm">运维及使用</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>Redis(RemoteDictionaryServer,远程字典服务器)是一种内存数据结构存储,通常用作NoSQL数据库、缓存和消息代理。它是开源的,因此用户可以免费安装,无需支付任何费用。Redis旨在为需要快速数据访问和低延迟的应用程序提供速度和效率。Redis支持多种数据类型,包括字符串(Strings)、列表(Lists)、集合(Sets)、哈希(Hashes)、有序集合(SortedS</div>
                    </li>
                    <li><a href="/article/1950163093577330688.htm"
                           title="Linux中Samba服务器安装与配置文件" target="_blank">Linux中Samba服务器安装与配置文件</a>
                        <span class="text-muted">長樂.-</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>Samba简述27zkqsamba是一个基于TCP/IP协议的开源软件套件,可以在Linux、Windows、macOS等操作系统上运行。它允许不同操作系统的计算机之间实现文件和打印机共享。samba提供了一个服务,使得Windows操作系统可以像访问本地文件一样访问Linux、Mac等操作系统上的共享文件。实现跨平台的文件共享,提高办公环境的效率和便利性。samba也支持Windows网络邻居协</div>
                    </li>
                    <li><a href="/article/1950161707464716288.htm"
                           title="Ubuntu Docker 安装Redis" target="_blank">Ubuntu Docker 安装Redis</a>
                        <span class="text-muted">LLLL96</span>
<a class="tag" taget="_blank" href="/search/Ubuntu/1.htm">Ubuntu</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a>
                        <div>目录介绍1.数据结构丰富2.高性能3.持久化1.拉取Redis镜像2.创建挂载目录(可选)3.配置Redis持久化(可选)4.使用配置文件运行容器5.查看redis日志介绍1.数据结构丰富Redis支持多种数据结构,包括:字符串(String):可以用来存储任何类型的数据,例如文本、数字或二进制数据。哈希(Hash):存储字段和值的映射,适合用于表示对象。列表(List):有序的字符串列表,可以用</div>
                    </li>
                    <li><a href="/article/1950154523955752960.htm"
                           title="Docker" target="_blank">Docker</a>
                        <span class="text-muted">℡余晖^</span>
<a class="tag" taget="_blank" href="/search/%E9%BB%91%E9%A9%AC%E7%82%B9%E8%AF%84%E9%A1%B9%E7%9B%AE%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98%E5%92%8C%E7%AC%94%E8%AE%B0/1.htm">黑马点评项目相关问题和笔记</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/eureka/1.htm">eureka</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a>
                        <div>在黑马点评项目中,在谈到Redisson解决redis的主从一致性问题时,弹幕提到了Docker,本文来简单了解一下Docker,我的初步理解运维是维护多个集群的稳定,那它和VM虚拟机的区别又是什么?,如果要更深入地理解与学习(运维工程师),可以到b站搜索专门的课程(SpringCloud)。一、Docker是什么?重新理解“容器化”的本质1.1Docker的定义Docker是一个开源的容器化平台</div>
                    </li>
                    <li><a href="/article/1950152629841620992.htm"
                           title="ubuntu qt环境下出现No suitable kits found解决方案" target="_blank">ubuntu qt环境下出现No suitable kits found解决方案</a>
                        <span class="text-muted"></span>

                        <div>1.清理QtCreator缓存QtCreator会缓存项目配置、索引等数据,可能导致某些异常。清理方法:(1)删除QtCreator配置目录bashrm-rf~/.config/QtProject/(Ubuntu/Linux)或Windows:cmdrmdir/s/q"%APPDATA%\QtProject"(2)清除QtCreator的编译缓存bashrm-rf~/.cache/QtProjec</div>
                    </li>
                    <li><a href="/article/1950152503563710464.htm"
                           title="如何在 Ubuntu 24.04 或 22.04 Linux 上安装和使用 NoMachine" target="_blank">如何在 Ubuntu 24.04 或 22.04 Linux 上安装和使用 NoMachine</a>
                        <span class="text-muted">山岚的运维笔记</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E5%8F%8A%E4%BD%BF%E7%94%A8/1.htm">运维及使用</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/nomachine/1.htm">nomachine</a><a class="tag" taget="_blank" href="/search/%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5/1.htm">远程连接</a>
                        <div>NoMachine是一款适用于Linux(Ubuntu)及其他支持的操作系统的远程桌面应用程序,允许用户通过本地或远程系统从世界任何地方控制计算机。它可以在低带宽连接下工作,被专业人士和家庭用户广泛使用。NoMachine的主要功能高性能远程访问跨平台兼容性易于使用,因为用户界面友好提供强大的加密协议,如SSH、SSL及其他安全标准支持远程文件传输和打印服务允许从远程计算机进行音频和视频流媒体传输</div>
                    </li>
                    <li><a href="/article/1950137877904027648.htm"
                           title="Docker部署Minio" target="_blank">Docker部署Minio</a>
                        <span class="text-muted">YiShuoChen666</span>
<a class="tag" taget="_blank" href="/search/eureka/1.htm">eureka</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/minio/1.htm">minio</a>
                        <div>一、拉取镜像dockerpullminio/minio:RELEASE.2025-04-22T22-12-26Z注:这里使用的版本是RELEASE.2025-04-22T22-12-26Z,最新的版本Web-UI界面没有管理bucket和其它的操作按钮,需要通过mc命令来实现,这对于新手很不友好二、创建目录,来存放minio的配置和将来放的文件mkdir-p/home/minio/configmk</div>
                    </li>
                    <li><a href="/article/1950135356531732480.htm"
                           title="linux实战--日志管理" target="_blank">linux实战--日志管理</a>
                        <span class="text-muted"></span>

                        <div>简介日志文件重要的信息系统文件,及了许多重要的系统事件,包括用户的登录信息,系统的启动信息,系统的安全信息,邮寄相关信息,各种服务相关的信息。日志对安全也很重要。每天记录系统发生的各种事情,通过日志检查错误发生的原因或受到攻击时攻击者留下的痕迹。总的来说,日志是记录重大事件的文件。处理日志的工具rsyslog系统日志管理专职管理日志的工具,它产生各种信息文件,主要存放在/var/loglogrot</div>
                    </li>
                    <li><a href="/article/1950131321980383232.htm"
                           title="深入了解 Kubernetes(k8s):从概念到实践" target="_blank">深入了解 Kubernetes(k8s):从概念到实践</a>
                        <span class="text-muted"></span>

                        <div>目录一、k8s核心概念二、k8s的优势三、k8s架构组件控制平面组件节点组件四、k8s+docker运行前后端分离项目的例子1.准备前端项目2.准备后端项目3.创建k8s部署配置文件4.部署应用到k8s集群在当今云计算和容器化技术飞速发展的时代,Kubernetes(简称k8s)已成为容器编排领域的事实标准。无论是互联网巨头、传统企业还是初创公司,都在广泛采用k8s来管理和部署容器化应用。本文将带</div>
                    </li>
                    <li><a href="/article/1950114557917720576.htm"
                           title="Windows系统第一次运行C语言程序,环境配置,软件安装等遇到的坑及解决方法" target="_blank">Windows系统第一次运行C语言程序,环境配置,软件安装等遇到的坑及解决方法</a>
                        <span class="text-muted">灬爱码士灬</span>
<a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>明确需要编辑器和编译器,并选择自己要用什么(我选的编辑器是VSCode:VisualStudioCode;编译器是gcc)下载VSCode并配置环境变量(这里没啥问题),安装C/C++的拓展安装Cygwin,用来在Windows操作系统上模拟Unix/Linux环境(Cygwin官网:https://www.cygwin.com/。)安装过程中镜像可以选择https://mirrors.aliyu</div>
                    </li>
                    <li><a href="/article/1950110777142734848.htm"
                           title="一篇教你学会Git" target="_blank">一篇教你学会Git</a>
                        <span class="text-muted">编程界的彭于晏qaq</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/GIT/1.htm">GIT</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a>
                        <div>从安装到高级使用(2025最新版)引言:为什么Git是开发者必备技能Git(GlobalInformationTracker)作为最流行的分布式版本控制系统,由Linux之父LinusTorvalds于2005年创建,现已成为软件开发的基础设施。与传统集中式版本控制系统(如SVN)相比,Git具有三大核心优势:分布式架构:每个开发者本地都有完整仓库副本,支持离线工作高效分支管理:创建和切换分支几乎</div>
                    </li>
                    <li><a href="/article/1950102202521546752.htm"
                           title="基本服务 FTP & SMB" target="_blank">基本服务 FTP & SMB</a>
                        <span class="text-muted">会飞的灰大狼</span>
<a class="tag" taget="_blank" href="/search/Centos7/1.htm">Centos7</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>基本服务FTP&SMB前言:FTP简称为文件传输协议前面说的他可以做到备份的功能那么它可以做到文件传输的过程smb我们简单来说共享文件夹‍NFSNFS(NetworkFileSystem,网络文件系统)是一种分布式文件系统协议,允许不同计算机之间通过网络共享文件和目录,使远程文件系统像本地文件系统一样被访问。它最初由SunMicrosystems开发,现在已成为UNIX/Linux系统中常用的网络</div>
                    </li>
                    <li><a href="/article/1950099173521027072.htm"
                           title="Ubuntu lamp" target="_blank">Ubuntu lamp</a>
                        <span class="text-muted">会飞的灰大狼</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a>
                        <div>Ubuntulamp前言在Ubuntu安装lamp架构我们了解到lamp是完整的架构我们前面了解到了集合了Linux系统apacheMySQL和PHP语言的完整架构我们前面说了Centos7中编译安装lamp那么我们去说一下在Ubuntu中安装‍‍安装apache2‍apt直接安装apache2apt-yinstallapache2‍启动apache2systemctlstartapache2#测</div>
                    </li>
                    <li><a href="/article/1950089974804180992.htm"
                           title="9、Docker Compose 实战" target="_blank">9、Docker Compose 实战</a>
                        <span class="text-muted">小醉你真好</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E9%83%A8%E7%BD%B2%E4%B8%8D%E6%B1%82%E4%BA%BA/1.htm">部署不求人</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>DockerCompose实战教程(含完整Nginx案例+配置项详解)适合读者:开发者、后端工程师、运维工程师、初学者环境要求:CentOS9+Docker已安装教程亮点:实战驱动、配置项详解、挂载说明、可直接复制使用标签:#Docker#DockerCompose#运维实战#Nginx部署一、什么是DockerCompose?DockerCompose是Docker官方推出的多容器应用编排工具,</div>
                    </li>
                    <li><a href="/article/1950089975504629760.htm"
                           title="CentOS 7 安装最新版Docker教程" target="_blank">CentOS 7 安装最新版Docker教程</a>
                        <span class="text-muted">朽~</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                        <div>CentOS7Docker安装教程1、更新yum2、安装`yum-utils`3、通过`yum-config-manager`添加dockerrepository4、安装docker4.1、直接安装最新版本4.2、或者安装指定版本5、启动docker6、测试7、卸载dockerdocker安装官方文档:InstallDockerEngineonCentOS1、更新yumyumupdate-y2、安</div>
                    </li>
                    <li><a href="/article/1950088840886677504.htm"
                           title="Linux文件权限与进程管理解析" target="_blank">Linux文件权限与进程管理解析</a>
                        <span class="text-muted">雨季西柚</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>控制对文件的访问1。什么是文件系统权限?它是如何工作的?如何查看文件的权限?答:文件系统权限就是规定谁能对文件/文件夹做什么(比如看、改、删)的规则。简单说,就是分"所有者、所属组、其他人"三类,给每类分配"读、写、执行"三种权限。操作时系统先看你属于哪类,再查有没有对应权限,有就允许,没有就拦着。查看方式:Linux/mac:终端输ls-l文件名,看开头的rwxr--r--这类字符(3个一组,对</div>
                    </li>
                    <li><a href="/article/1950060480118714368.htm"
                           title="【Linux内核模块】调试技巧" target="_blank">【Linux内核模块】调试技巧</a>
                        <span class="text-muted">byte轻骑兵</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8FLinux%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98/1.htm">嵌入式Linux驱动开发实战</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>内核模块开发最让人头疼的不是写代码,而是调试——代码编译通过了,加载后却要么没反应,要么直接让系统崩溃。这就像在黑屋子里修机器,看不见摸不着。其实内核调试有一套成熟的工具箱,掌握这些工具和技巧,就能给内核装个监控监控仪,让问题无所遁形。目录一、调试前的安全须知:别让系统崩溃二、最基础也最常用:printk打印日志2.1printk的基本用法2.2控制日志输出2.3printk的高级技巧三、内核Oo</div>
                    </li>
                    <li><a href="/article/1950059723604684800.htm"
                           title="linux网卡显示未知未托管,linux有线网络显示设备未托管" target="_blank">linux网卡显示未知未托管,linux有线网络显示设备未托管</a>
                        <span class="text-muted"></span>

                        <div>NetworkManagerNetworkManager是为了使网络配置尽可能简单而开发的网络管理软件包,如果使用DHCP,NetworkManager会替换默认的路由表、从DHCP服务器获取IP地址并根据情况设置域名服务器,NetworkManager的目标是使网络能够开箱即用。NetworkManager由两部分组成:一个以超级用户运行的守护进程(network-manager);一个前端管理</div>
                    </li>
                    <li><a href="/article/1950057957823672320.htm"
                           title="DNF 与 YUM 的区别详解:从 CentOS 7 到 CentOS 9 的演进" target="_blank">DNF 与 YUM 的区别详解:从 CentOS 7 到 CentOS 9 的演进</a>
                        <span class="text-muted"></span>

                        <div>DNF与YUM的区别详解:从CentOS7到CentOS9的演进标签:CentOS、YUM、DNF、Linux包管理、系统升级、兼容性适用版本:CentOS7、CentOS8、CentOS9一、背景介绍CentOS中使用的包管理工具是RedHat系列系统的重要组成部分。随着系统版本升级,包管理器从yum(CentOS7)逐渐过渡到dnf(CentOS8及之后版本)。二、YUM与DNF对比表对比项Y</div>
                    </li>
                    <li><a href="/article/1950053669370130432.htm"
                           title="Python简单练习3" target="_blank">Python简单练习3</a>
                        <span class="text-muted">第九条雀</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>1.技术面试题(1)解释Linux中的进程、线程和守护进程的概念,以及如何管理它们?答:1.进程:进程是程序的一次动态执行过程,是系统进行资源分配和调度的基本单位拥有独立的内存空间(代码段、数据段、堆栈等),进程间内存不共享包含进程PID、PPID、状态(运行、就绪、阻塞等)、优先级等属性进程间通信需通过管道、信号、共享内存等机制实现线程:线程是进程内的一个执行单元,是CPU调度的最小单位,共享所</div>
                    </li>
                                <li><a href="/article/4.htm"
                                       title="java的(PO,VO,TO,BO,DAO,POJO)" target="_blank">java的(PO,VO,TO,BO,DAO,POJO)</a>
                                    <span class="text-muted">Cb123456</span>
<a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/TO/1.htm">TO</a><a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a>
                                    <div>转: 
http://www.cnblogs.com/yxnchinahlj/archive/2012/02/24/2366110.html 
  
------------------------------------------------------------------- 
 O/R Mapping 是 Object Relational Mapping(对象关系映</div>
                                </li>
                                <li><a href="/article/131.htm"
                                       title="spring ioc原理(看完后大家可以自己写一个spring)" target="_blank">spring ioc原理(看完后大家可以自己写一个spring)</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>         最近,买了本Spring入门书:spring In Action 。大致浏览了下感觉还不错。就是入门了点。Manning的书还是不错的,我虽然不像哪些只看Manning书的人那样专注于Manning,但怀着崇敬 的心情和激情通览了一遍。又一次接受了IOC 、DI、AOP等Spring核心概念。 先就IOC和DI谈一点我的看法。IO</div>
                                </li>
                                <li><a href="/article/258.htm"
                                       title="MyEclipse 2014中Customize Persperctive设置无效的解决方法" target="_blank">MyEclipse 2014中Customize Persperctive设置无效的解决方法</a>
                                    <span class="text-muted">Kai_Ge</span>
<a class="tag" taget="_blank" href="/search/MyEclipse2014/1.htm">MyEclipse2014</a>
                                    <div>高高兴兴下载个MyEclipse2014,发现工具条上多了个手机开发的按钮,心生不爽就想弄掉他!
结果发现Customize Persperctive失效!!
有说更新下就好了,可是国内Myeclipse访问不了,何谈更新...
so~这里提供了更新后的一下jar包,给大家使用! 
1、将9个jar复制到myeclipse安装目录\plugins中
2、删除和这9个jar同包名但是版本号较</div>
                                </li>
                                <li><a href="/article/385.htm"
                                       title="SpringMvc上传" target="_blank">SpringMvc上传</a>
                                    <span class="text-muted">120153216</span>
<a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a>
                                    <div>  
@RequestMapping(value = WebUrlConstant.UPLOADFILE)
	@ResponseBody
	public Map<String, Object> uploadFile(HttpServletRequest request,HttpServletResponse httpresponse) {
		try {
			// </div>
                                </li>
                                <li><a href="/article/512.htm"
                                       title="Javascript----HTML DOM 事件" target="_blank">Javascript----HTML DOM 事件</a>
                                    <span class="text-muted">何必如此</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a>
                                    <div>HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序。 
 
事件通常与函数结合使用,函数不会在事件发生前被执行! 
 
 
注:DOM: 指明使用的 DOM 属性级别。 
 
1.鼠标事件 
属性               </div>
                                </li>
                                <li><a href="/article/639.htm"
                                       title="动态绑定和删除onclick事件" target="_blank">动态绑定和删除onclick事件</a>
                                    <span class="text-muted">357029540</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a>
                                    <div>因为对JQUERY和JS的动态绑定事件的不熟悉,今天花了好久的时间才把动态绑定和删除onclick事件搞定!现在分享下我的过程。 
 
     在我的查询页面,我将我的onclick事件绑定到了tr标签上同时传入当前行(this值)参数,这样可以在点击行上的任意地方时可以选中checkbox,但是在我的某一列上也有一个onclick事件是用于下载附件的,当</div>
                                </li>
                                <li><a href="/article/766.htm"
                                       title="HttpClient|HttpClient请求详解" target="_blank">HttpClient|HttpClient请求详解</a>
                                    <span class="text-muted">7454103</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8/1.htm">网络应用</a><a class="tag" taget="_blank" href="/search/Security/1.htm">Security</a>
                                    <div>HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法。HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需</div>
                                </li>
                                <li><a href="/article/893.htm"
                                       title="递归 逐层统计树形结构数据" target="_blank">递归 逐层统计树形结构数据</a>
                                    <span class="text-muted">darkranger</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                                    <div>将集合递归获取树形结构: 
 
 
/** 
 * 
 * 递归获取数据 
 * @param alist:所有分类 
 * @param subjname:对应统计的项目名称 
 * @param pk:对应项目主键 
 * @param reportList: 最后统计的结果集 
 * @param count:项目级别 
 */ 
 
 public void getReportVO(Arr</div>
                                </li>
                                <li><a href="/article/1020.htm"
                                       title="访问WEB-INF下使用frameset标签页面出错的原因" target="_blank">访问WEB-INF下使用frameset标签页面出错的原因</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a>
                                    <div><frameset rows="61,*,24" cols="*" framespacing="0" frameborder="no" border="0">          </div>
                                </li>
                                <li><a href="/article/1147.htm"
                                       title="MAVEN常用命令" target="_blank">MAVEN常用命令</a>
                                    <span class="text-muted">avords</span>

                                    <div>Maven库: 
http://repo2.maven.org/maven2/ 
Maven依赖查询: 
http://mvnrepository.com/ 
Maven常用命令: 1. 创建Maven的普通java项目:    mvn archetype:create    -DgroupId=packageName </div>
                                </li>
                                <li><a href="/article/1274.htm"
                                       title="PHP如果自带一个小型的web服务器就好了" target="_blank">PHP如果自带一个小型的web服务器就好了</a>
                                    <span class="text-muted">houxinyou</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a>
                                    <div>最近单位用PHP做网站,感觉PHP挺好的,不过有一些地方不太习惯,比如,环境搭建。PHP本身就是一个网站后台脚本,但用PHP做程序时还要下载apache,配置起来也不太很方便,虽然有好多配置好的apache+php+mysq的环境,但用起来总是心里不太舒服,因为我要的只是一个开发环境,如果是真实的运行环境,下个apahe也无所谓,但只是一个开发环境,总有一种杀鸡用牛刀的感觉。如果php自己的程序中</div>
                                </li>
                                <li><a href="/article/1401.htm"
                                       title="NoSQL数据库之Redis数据库管理(list类型)" target="_blank">NoSQL数据库之Redis数据库管理(list类型)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/NoSQL/1.htm">NoSQL</a>
                                    <div>3.list类型及操作 
        List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。 
  &nbs</div>
                                </li>
                                <li><a href="/article/1528.htm"
                                       title="谁在用Hadoop?" target="_blank">谁在用Hadoop?</a>
                                    <span class="text-muted">bingyingao</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/%E5%85%AC%E5%8F%B8/1.htm">公司</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF/1.htm">应用场景</a>
                                    <div>Hadoop技术的应用已经十分广泛了,而我是最近才开始对它有所了解,它在大数据领域的出色表现也让我产生了兴趣。浏览了他的官网,其中有一个页面专门介绍目前世界上有哪些公司在用Hadoop,这些公司涵盖各行各业,不乏一些大公司如alibaba,ebay,amazon,google,facebook,adobe等,主要用于日志分析、数据挖掘、机器学习、构建索引、业务报表等场景,这更加激发了学习它的热情。</div>
                                </li>
                                <li><a href="/article/1655.htm"
                                       title="【Spark七十六】Spark计算结果存到MySQL" target="_blank">【Spark七十六】Spark计算结果存到MySQL</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>package spark.examples.db

import java.sql.{PreparedStatement, Connection, DriverManager}

import com.mysql.jdbc.Driver
import org.apache.spark.{SparkContext, SparkConf}

object SparkMySQLInteg</div>
                                </li>
                                <li><a href="/article/1782.htm"
                                       title="Scala: JVM上的函数编程" target="_blank">Scala: JVM上的函数编程</a>
                                    <span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a><a class="tag" taget="_blank" href="/search/erlang/1.htm">erlang</a><a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a>
                                    <div>    说Scala是JVM上的函数编程一点也不为过,Scala把面向对象和函数型编程这两种主流编程范式结合了起来,对于熟悉各种编程范式的人而言Scala并没有带来太多革新的编程思想,scala主要的有点在于Java庞大的package优势,这样也就弥补了JVM平台上函数型编程的缺失,MS家.net上已经有了F#,JVM怎么能不跟上呢? 
    对本人而言</div>
                                </li>
                                <li><a href="/article/1909.htm"
                                       title="jar打成exe" target="_blank">jar打成exe</a>
                                    <span class="text-muted">bro_feng</span>
<a class="tag" taget="_blank" href="/search/java+jar+exe/1.htm">java jar exe</a>
                                    <div>今天要把jar包打成exe,jsmooth和exe4j都用了。 
遇见几个问题。记录一下。 
两个软件都很好使,网上都有图片教程,都挺不错。 
 
首先肯定是要用自己的jre的,不然不能通用,其次别忘了把需要的lib放到classPath中。 
困扰我很久的一个问题是,我自己打包成功后,在一个同事的没有装jdk的电脑上运行,就是不行,报错jvm.dll为无效的windows映像,如截图 
最后发现</div>
                                </li>
                                <li><a href="/article/2036.htm"
                                       title="读《研磨设计模式》-代码笔记-策略模式-Strategy" target="_blank">读《研磨设计模式》-代码笔记-策略模式-Strategy</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ 
 
 




/*
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化

简单理解:
1、将不同的策略提炼出一个共同接口。这是容易的,因为不同的策略,只是算法不同,需要传递的参数</div>
                                </li>
                                <li><a href="/article/2163.htm"
                                       title="cmd命令值cvfM命令" target="_blank">cmd命令值cvfM命令</a>
                                    <span class="text-muted">chenyu19891124</span>
<a class="tag" taget="_blank" href="/search/cmd/1.htm">cmd</a>
                                    <div>     cmd命令还真是强大啊。今天发现jar -cvfM aa.rar @aaalist 就这行命令可以根据aaalist取出相应的文件 
  例如: 
     在d:\workspace\prpall\test.java 有这样一个文件,现在想要将这个文件打成一个包。运行如下命令即可比如在d:\wor</div>
                                </li>
                                <li><a href="/article/2290.htm"
                                       title="OpenJWeb(1.8) Java Web应用快速开发平台" target="_blank">OpenJWeb(1.8) Java Web应用快速开发平台</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/1.htm">项目管理</a><a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8/1.htm">企业应用</a>
                                    <div>  
  OpenJWeb(1.8) Java Web应用快速开发平台的作者是我们技术联盟的成员,他最近推出了新版本的快速应用开发平台  OpenJWeb(1.8),我帮他做做宣传 
 
  OpenJWeb快速开发平台以快速开发为核心,整合先进的java 开源框架,本着自主开发+应用集成相结合的原则,旨在为政府、企事业单位、软件公司等平台用户提供一个架构透</div>
                                </li>
                                <li><a href="/article/2417.htm"
                                       title="Python 报错:IndentationError: unexpected indent" target="_blank">Python 报错:IndentationError: unexpected indent</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/tab/1.htm">tab</a><a class="tag" taget="_blank" href="/search/%E7%A9%BA%E6%A0%BC/1.htm">空格</a><a class="tag" taget="_blank" href="/search/%E7%BC%A9%E8%BF%9B/1.htm">缩进</a>
                                    <div>    IndentationError: unexpected indent 是缩进的问题,也有可能是tab和空格混用啦 
 
    Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且在Python语言里,缩进而非花括号或者某种关键字,被用于表示语句块的开始和退出。增加缩进表示语句块的开</div>
                                </li>
                                <li><a href="/article/2544.htm"
                                       title="HttpClient 超时设置" target="_blank">HttpClient 超时设置</a>
                                    <span class="text-muted">dongwei_6688</span>
<a class="tag" taget="_blank" href="/search/httpclient/1.htm">httpclient</a>
                                    <div>HttpClient中的超时设置包含两个部分: 
1. 建立连接超时,是指在httpclient客户端和服务器端建立连接过程中允许的最大等待时间 
2. 读取数据超时,是指在建立连接后,等待读取服务器端的响应数据时允许的最大等待时间 
  
在HttpClient 4.x中如下设置: 
  
  
HttpClient httpclient = new DefaultHttpC</div>
                                </li>
                                <li><a href="/article/2671.htm"
                                       title="小鱼与波浪" target="_blank">小鱼与波浪</a>
                                    <span class="text-muted">dcj3sjt126com</span>

                                    <div>一条小鱼游出水面看蓝天,偶然间遇到了波浪。  小鱼便与波浪在海面上游戏,随着波浪上下起伏、汹涌前进。  小鱼在波浪里兴奋得大叫:“你每天都过着这么刺激的生活吗?简直太棒了。”  波浪说:“岂只每天过这样的生活,几乎每一刻都这么刺激!还有更刺激的,要有潮汐变化,或者狂风暴雨,那才是兴奋得心脏都会跳出来。”  小鱼说:“真希望我也能变成一个波浪,每天随着风雨、潮汐流动,不知道有多么好!”  很快,小鱼</div>
                                </li>
                                <li><a href="/article/2798.htm"
                                       title="Error Code: 1175 You are using safe update mode and you tried to update a table" target="_blank">Error Code: 1175 You are using safe update mode and you tried to update a table</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div> 
 快速高效用:SET SQL_SAFE_UPDATES = 0;下面的就不要看了! 
 今日用MySQL Workbench进行数据库的管理更新时,执行一个更新的语句碰到以下错误提示: 
 Error Code: 1175 
 You are using safe update mode and you tried to update a table without a WHERE that </div>
                                </li>
                                <li><a href="/article/2925.htm"
                                       title="枚举类型详细介绍及方法定义" target="_blank">枚举类型详细介绍及方法定义</a>
                                    <span class="text-muted">gaomysion</span>
<a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/javaee/1.htm">javaee</a>
                                    <div>转发 
http://developer.51cto.com/art/201107/275031.htm 
 
枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。建议大家可以看看,这两篇文章,《java枚举类型入门》和《C++的中的结构体和枚举》,供大家参考。 
 
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum</div>
                                </li>
                                <li><a href="/article/3052.htm"
                                       title="Merge Sorted Array" target="_blank">Merge Sorted Array</a>
                                    <span class="text-muted">hcx2013</span>
<a class="tag" taget="_blank" href="/search/array/1.htm">array</a>
                                    <div>Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. 
Note:You may assume that nums1 has enough space (size that is</div>
                                </li>
                                <li><a href="/article/3179.htm"
                                       title="Expression Language 3.0新特性" target="_blank">Expression Language 3.0新特性</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/el+3.0/1.htm">el 3.0</a>
                                    <div>Expression Language 3.0表达式语言规范最终版从2013-4-29发布到现在已经非常久的时间了;目前如Tomcat 8、Jetty 9、GlasshFish 4已经支持EL 3.0。新特性包括:如字符串拼接操作符、赋值、分号操作符、对象方法调用、Lambda表达式、静态字段/方法调用、构造器调用、Java8集合操作。目前Glassfish 4/Jetty实现最好,对大多数新特性</div>
                                </li>
                                <li><a href="/article/3306.htm"
                                       title="超越算法来看待个性化推荐" target="_blank">超越算法来看待个性化推荐</a>
                                    <span class="text-muted">liyonghui160com</span>
<a class="tag" taget="_blank" href="/search/%E8%B6%85%E8%B6%8A%E7%AE%97%E6%B3%95%E6%9D%A5%E7%9C%8B%E5%BE%85%E4%B8%AA%E6%80%A7%E5%8C%96%E6%8E%A8%E8%8D%90/1.htm">超越算法来看待个性化推荐</a>
                                    <div>  
       一提到个性化推荐,大家一般会想到协同过滤、文本相似等推荐算法,或是更高阶的模型推荐算法,百度的张栋说过,推荐40%取决于UI、30%取决于数据、20%取决于背景知识,虽然本人不是很认同这种比例,但推荐系统中,推荐算法起的作用起的作用是非常有限的。 
      就像任何</div>
                                </li>
                                <li><a href="/article/3433.htm"
                                       title="写给Javascript初学者的小小建议" target="_blank">写给Javascript初学者的小小建议</a>
                                    <span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a>
                                    <div>  一般初学JavaScript的时候最头痛的就是浏览器兼容问题。在Firefox下面好好的代码放到IE就不能显示了,又或者是在IE能正常显示的代码在firefox又报错了。     如果你正初学JavaScript并有着一样的处境的话建议你:初学JavaScript的时候无视DOM和BOM的兼容性,将更多的时间花在 了解语言本身(ECMAScript)。只在特定浏览器编写代码(Chrome/Fi</div>
                                </li>
                                <li><a href="/article/3560.htm"
                                       title="Java 枚举" target="_blank">Java 枚举</a>
                                    <span class="text-muted">ShihLei</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/%E6%9E%9A%E4%B8%BE/1.htm">枚举</a>
                                    <div>注:文章内容大量借鉴使用网上的资料,可惜没有记录参考地址,只能再传对作者说声抱歉并表示感谢! 
  
一 基础  1)语法 
  
 
      枚举类型只能有私有构造器(这样做可以保证客户代码没有办法新建一个enum的实例) 
      枚举实例必须最先定义 
   2)特性   
 
     &nb</div>
                                </li>
                                <li><a href="/article/3687.htm"
                                       title="Java SE 6 HotSpot虚拟机的垃圾回收机制" target="_blank">Java SE 6 HotSpot虚拟机的垃圾回收机制</a>
                                    <span class="text-muted">uuhorse</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/HotSpot/1.htm">HotSpot</a><a class="tag" taget="_blank" href="/search/GC/1.htm">GC</a><a class="tag" taget="_blank" href="/search/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/1.htm">垃圾回收</a><a class="tag" taget="_blank" href="/search/VM/1.htm">VM</a>
                                    <div>官方资料,关于Java SE 6 HotSpot虚拟机的garbage Collection,非常全,英文。 
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html 
  Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning 
&</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>