当前位置:   article > 正文

docker-compose安装各种中间件_dockercompose国内镜像

dockercompose国内镜像

一、安装docker

https://docs.docker.com/engine/install/centos/

1.1、卸载系统之前的docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

1.2、先安装一些必须依赖的包

sudo yum install -y yum-utils
  • 1

1.3、添加docker下载仓库

配置镜像,即告诉虚拟机docker应该从哪个地址安装

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  • 1
  • 2
  • 3

1.4、安装docker的客户端和它的容器

yum install docker-ce docker-ce-cli containerd.io
  • 1

1.5、启动docker

systemctl start docker
  • 1

1.6、设置开机自启动

systemctl enable docker
  • 1

1.7、查看docker版本

#验证
docker -v
  • 1
  • 2

1.8、查看docker中安装了哪些镜像

docker images
  • 1

1.9、配置阿里云镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hnlqq1f3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1.9.1、查看阿里云镜像加速地址

1、

2、

3、

4、

二、安装docker-compose

查看github上的docker-compose发行版本的地址:
https://github.com/docker/compose/tags

compose官网安装文档:https://docs.docker.com/compose/install/#install-compose

安装的命令如下:

2.1、安装docker-compose(国内高速镜像)

以编译好的二进制包方式安装在Linux系统中

gihub上下载docker-compose太慢了,下载不动,只能换成国内镜像(daocloud.io)来下载。

下载

curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • 1

设置文件具备执行权限

chmod +x /usr/local/bin/docker-compose
  • 1

查看是否安装成功

docker-compose --version
  • 1

2.2、docker-compose卸载

如果安装出错,要卸载docker-compose,可执行这个命令

二进制包方式安装的,删除二进制文件即可

rm /usr/local/bin/docker-compose
  • 1

三、docker-compose安装容器

3.1、创建文件

1、在root目录下面建立docker-compose-service文件夹

docker-compose-service文件是我以后存放所有安装的容器地址

3.2、新建一个docker-compose.yml文件

注意:

注意1:docker-compose.yml文件的格式要求很严格,不能出现tab占位符,如果有得改为2个空格代替,否则会报错

mkdir docker-compose-service
cd docker-compose-service		#切换到docker-compose-service文件夹下

vi docker-compose.yml				#编辑docker-compose.yml文件
  • 1
  • 2
  • 3
  • 4

注意2:每次执行docker-compose up -d命令或者其他docker-compose up 命令前必须先切换到docker-compose-service文件夹下,即先执行

cd docker-compose-service	
  • 1

否则会报下面的错

3.3、添加内容

version: "3"
services:

  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    ports:
      - "3381:3306"
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1 
    environment:
      MYSQL_ROOT_PASSWORD: "*Qx834¥sD#m&!9051ksh@fkj" 
    volumes:
      - /root/docker-compose-service/mysql/data:/var/lib/mysql
      - /root/docker-compose-service/mysql/conf/my.cnf:/etc/my.cnf
   
  redis:
    image: redis
    container_name: redis
    restart: always
    environment:
      - TZ=Asia/Shanghai
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "6379:6379"
    volumes:
      - /root/docker-compose-service/redis/data:/var/lib/redis/data
      - /root/docker-compose-service/redis/redis.conf:/usr/local/etc/redis/redis.conf   
    
  nginx:
    image: nginx
    container_name: nginx
    restart: always
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "82:80"
      - "443:443"
    volumes:
      - /root/docker-compose-service/nginx/conf.d:/etc/nginx/conf.d
      - /root/docker-compose-service/nginx/log:/var/log/nginx
      - /root/docker-compose-service/nginx/www:/etc/nginx/html
      - /root/docker-compose-service/nginx/etc/letsencrypt:/etc/letsencrypt
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
ls		#验证文件是否创建成功
  • 1

3.4、后台启动

docker-compose up -d
  • 1

安装完成

由于nacos依赖于mysql, 所以这里单独把nacos配置拿出来

3.5、配置数据库

这里很重要,一定要等到mysql安装成功并启动完后再重新创建nacos数据库

之后再安装nacos容器

3.5.1、下载nacos_config.sql文件

nacos初始化sql,需要先创建nacos数据库后,然后执行下面的sql

https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

或者直接将下列sql保存到记事本,重命名为nacos_config.sql

nacos_config.sql文件

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 '2010-05-05 000000' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 000000' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) 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';



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='增加租户字段';



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 '2010-05-05 000000' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 000000' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) 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';



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 '2010-05-05 000000' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 000000' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) 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';


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';


 
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 '2010-05-05 000000' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 000000' COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';


 
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 '2010-05-05 000000',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 000000',
  `src_user` text,
  `src_ip` varchar(20) 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='多租户改造';



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 '2010-05-05 000000' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 000000' 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,
	constraint uk_username_role UNIQUE (username,role)
);

CREATE TABLE permissions (
    role varchar(50) NOT NULL,
    resource varchar(512) NOT NULL,
    action varchar(8) NOT NULL,
    constraint uk_role_permission UNIQUE (role,resource,action)
);

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

INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181

3.5.2、navicat连接mysql

navicat连接服务器上已经安装好并运行的mysql

3.5.3、创建数据库

数据库名称和sql文件名一致,字符集和排序规则对应sql文件要求

nacos_config
  • 1

3.5.4、运行sql文件

刷新得到如下表信息代表数据库创建成功

3.5.5、注意

1.1.4 升级1.3.1需要执行的脚本

ALTER TABLE `roles` ADD UNIQUE `uk_username_role` (`username`, `role`); CREATE TABLE permissions ( role varchar(50) NOT NULL, resource varchar(512) NOTNULL, action varchar(8) NOT NULL, constraint uk_role_permission UNIQUE (role,resource,action) ) ROW_FORMAT=DYNAMIC;
  • 1

如果启动1.3.1报错,比如mysql时区异常,把conf配置文件弄到主机上

docker cp nacos1.3.1:/home/nacos/conf /home/dockerdata/nacos1.3.1 #修改mysql的配置后docker stop nacos1.3.1docker rm nacos1.3.1
docker run -d \-e PREFER_HOST_MODE=ip \-e MODE=standalone \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=172.168.1.33 \-e MYSQL_SERVICE_PORT=3306 \-e MYSQL_SERVICE_USER=root \-e MYSQL_SERVICE_PASSWORD=root \-e MYSQL_SERVICE_DB_NAME=nacos \-e TIME_ZONE='Asia/Shanghai' \-v /home/dockerdata/nacos1.3.1/logs:/home/nacos/logs \-v /home/dockerdata/nacos1.3.1/conf:/home/nacos/conf \-p 8848:8848 \--name nacos1.3.1 \--restart=always \nacos/nacos-server:1.3.1
  • 1
  • 2

安装nacos时,一定要先打开刚才创建好的数据库,否则在启动nacos 会报下面的错

No DataSource set

ERROR Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'opsController' defined in URL [jar:file:/home/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-config-1.1.4.jar!/com/alibaba/nacos/config/server/controller/OpsController.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dumpService': Invocation of init method failed; nested exception is java.lang.RuntimeException: Nacos Server did not start because dumpservice bean construction failure :
No DataSource set
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:218)
    
    ... 40 common frames omitted
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

最后不要忘记更改阿里云安全组的配置规则

3.6、打开docker-compose.yml

cd docker-compose-servicevim docker-compose.yml
  • 1

3.6.1、点击 i 添加下面内容
version: "3"
services:

  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    ports:
      - "3307:3306"
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1 
    environment:
      MYSQL_ROOT_PASSWORD: "root" 
    volumes:
      - /root/docker-compose-service/mysql/data:/var/lib/mysql
      - /root/docker-compose-service/mysql/conf/my.cnf:/etc/my.cnf
   
  redis:
    image: redis
    container_name: redis
    restart: always
    environment:
      - TZ=Asia/Shanghai
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "6379:6379"
    volumes:
      - /root/docker-compose-service/redis/data:/var/lib/redis/data
      - /root/docker-compose-service/redis/redis.conf:/usr/local/etc/redis/redis.conf   
    
  nginx:
    image: nginx
    container_name: nginx
    restart: always
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "82:80"
      - "443:443"
    volumes:
      - /root/docker-compose-service/nginx/conf.d:/etc/nginx/conf.d
      - /root/docker-compose-service/nginx/log:/var/log/nginx
      - /root/docker-compose-service/nginx/www:/etc/nginx/html
      - /root/docker-compose-service/nginx/etc/letsencrypt:/etc/letsencrypt
      
  nacos:
    image: nacos/nacos-server:1.1.4
    container_name: nacos
    restart: always
    environment:
      - PREFER_HOST_MODE=ip
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_MASTER_SERVICE_HOST=123.56.71.102
      - MYSQL_MASTER_SERVICE_PORT=3307
      - MYSQL_MASTER_SERVICE_USER=root
      - MYSQL_MASTER_SERVICE_PASSWORD=root
      - MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
      - MYSQL_SLAVE_SERVICE_HOST=123.56.71.102
      - MYSQL_SLAVE_SERVICE_PORT=3307
    volumes:
      - /root/docker-compose-service/nacos:/home/nacos/logs
    ports:
      - "8848:8848"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
nacos:
    image: nacos/nacos-server:1.1.4
    container_name: nacos
    environment:
      - PREFER_HOST_MODE=ip
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_MASTER_SERVICE_HOST=123.56.71.102
      - MYSQL_MASTER_SERVICE_PORT=3307
      - MYSQL_MASTER_SERVICE_USER=root
      - MYSQL_MASTER_SERVICE_PASSWORD=root
      - MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
      - MYSQL_SLAVE_SERVICE_HOST=123.56.71.102
      - MYSQL_SLAVE_SERVICE_PORT=3307
    volumes:
      - /root/docker-compose-service/nacos:/home/nacos/logs
    ports:
      - 8848:8848 
    restart: always 
    
    
 elasticsearch:
    image: elasticsearch:7.4.2
    container_name: es7
    restart: always
    environment:
      - discovery.type=single-node
      - ES_JAVA_POTS="-Xms64m -Xmx512m"
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - /root/docker-compose-service/elasticsearch/data:/usr/share/elasticsearch/data
    
          
 kibana:    
    image: kibana:7.4.2
    container_name: kibana
    restart: always
    environment: 
      - I18N_LOCALE=zh-CN  
      - XPACK_GRAPH_ENABLED=true
      - TIMELION_ENABLED=true
      - XPACK_MONITORING_COLLECTION_ENABLED="true"
      - ELASTICSEARCH_HOSTS=http://es:9200
      - xpack.monitoring.ui.container.elasticsearch.enabled=false
    links:
      - "elasticsearch"
    ports: 
      - "5601:5601"
        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

点击ESC

:wq		保存退出
  • 1

3.7、创建并启动nacos

docker-compose up -d
  • 1

完整代码

docker-compose.yml

version: "3"
services:

  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    ports:
      - "3307:3306"
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1 
    environment:
      MYSQL_ROOT_PASSWORD: "root" 
    volumes:
      - /root/docker-compose-service/mysql/data:/var/lib/mysql
      - /root/docker-compose-service/mysql/conf/my.cnf:/etc/my.cnf
   
  redis:
    image: redis
    container_name: redis
    restart: always
    environment:
      - TZ=Asia/Shanghai
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "6379:6379"
    volumes:
      - /root/docker-compose-service/redis/data:/var/lib/redis/data
      - /root/docker-compose-service/redis/redis.conf:/usr/local/etc/redis/redis.conf   
    
  nginx:
    image: nginx
    container_name: nginx
    restart: always
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "82:80"
      - "443:443"
    volumes:
      - /root/docker-compose-service/nginx/conf.d:/etc/nginx/conf.d
      - /root/docker-compose-service/nginx/log:/var/log/nginx
      - /root/docker-compose-service/nginx/www:/etc/nginx/html
      - /root/docker-compose-service/nginx/etc/letsencrypt:/etc/letsencrypt
      
  nacos:
    image: nacos/nacos-server:1.1.4
    container_name: nacos
    restart: always
    environment:
      - PREFER_HOST_MODE=ip
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_MASTER_SERVICE_HOST=123.56.71.102
      - MYSQL_MASTER_SERVICE_PORT=3307
      - MYSQL_MASTER_SERVICE_USER=root
      - MYSQL_MASTER_SERVICE_PASSWORD=root
      - MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
      - MYSQL_SLAVE_SERVICE_HOST=123.56.71.102
      - MYSQL_SLAVE_SERVICE_PORT=3307
    volumes:
      - /root/docker-compose-service/nacos:/home/nacos/logs
    ports:
      - "8848:8848"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68

3.8、安装elasticsearch和kibana

dokcer中安装elasticsearch

(1)下载ealastic search(存储和检索)和kibana(可视化检索)

版本要统一docker pull elasticsearch:7.4.2docker pull kibana:7.4.2
  • 1

配置

# 将docker里的目录挂载到linux的/root目录中# 修改/root就可以改掉docker里的mkdir -p /root/docker-compose-service/elasticsearch/configmkdir -p /root/docker-compose-service/elasticsearch/data# es可以被远程任何机器访问#我的设置,注意格式echo "http.host: 0.0.0.0" >/root/docker-compose-service/elasticsearch/config/elasticsearch.yml# 递归更改权限,es需要访问chmod -R 777 /root/docker-compose-service/elasticsearch/
  • 1

(2)、启动Elasticsearch

# 9200是用户交互端口 9300是集群心跳端口# -e指定是单阶段运行# -e指定占用的内存大小,生产时可以设置32Gdocker run --name es7 -p 9200:9200 -p 9300:9300 \-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \-v /root/docker-compose-service/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \-v /root/docker-compose-service/elasticsearch/data:/usr/share/elasticsearch/data \-v /root/docker-compose-service/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-d elasticsearch:7.4.2 # 设置开机启动elasticsearchdocker update es7 --restart=always
  • 1

如果访问没有错,下面这一步可以跳过!!!

因为容器里的文件映射到了外面,所以删除容器和新建容器数据还在

第一次查docker ps启动了,第二次查的时候发现关闭了,docker logs elasticsearch

http://123.56.71.102:9200

数据挂载到外面,但是访问权限不足

把/mydata/elasticsearch下文件夹的权限设置好,上面已经设置过了

遇到了更新阿里源也下载不下来kibana镜像的情况,先在别的网络下载下来后传到vagrant中

docker save -o kibana.tar kibana:7.4.2 

docker load -i kibana.tar 

# 如何通过其他工具链接ssh

修改/etc/ssh/sshd_config
修改 PasswordAuthentication yes

systemctl restart sshd.service  或 service sshd restart

# 连接192.168.56.10:22端口成功,用户名root,密码vagrant

也可以通过vagrant ssh-config查看ip和端口,此时是127.0.0.1:2222
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在安装离线docker镜像的时候还提示内存不足,看了下是因为外部挂载的内存也算在了vagrant中,即使外部删了很多文件,vagrant中df -h硬盘占用率也不下降。我在外部删完文件后在内部又rm -rf XXX 强行接触占用

(3)启动kibana:

# kibana指定了了ES交互端口9200  # 5600为kibana主页端口
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://123.56.71.102:9200 -p 5601:5601 -d kibana:7.4.2

# 设置开机启动kibana
docker update kibana --restart=always
  • 1
  • 2
  • 3
  • 4
  • 5
find / -name+文件夹名find / -name kibana
  • 1

(4)测试

访问elasticsearch

查看elasticsearch版本信息: http://123.56.71.102:9200

{
  "name" : "4334173899e6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "JswYk6h3RdS-ybdiEVGEFg",
  "version" : {
    "number" : "7.4.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
    "build_date" : "2019-10-28T20:40:44.881551Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

显示elasticsearch 节点信息http://123.56.71.102:9200/_cat/nodes

127.0.0.1 14 96 48 9.99 11.11 12.10 dilm * 4334173899e6

4334173899e6代表上面的结点
*代表是主节点
  • 1
  • 2
  • 3
  • 4
访问kibana

访问Kibana: http://123.56.71.102:5601/app/kibana

3.9、查看容器运行状态

docker ps
  • 1

3.10、访问测试

1、

在浏览器访问 http://ip:8848/nacos/index.html

我的nacos地址: http://123.56.71.102:8848/nacos

默认登录账号 nacos/nacos

2、

查看elasticsearch版本信息: http://ip:9200

我的elasticsearch地址: http://123.56.71.102:9200

3、

访问kibana: http://ip:5601/app/kibana

我的kibana地址: http://123.56.71.102:5601/app/kibana

3.11、可以查看启动日志

docker-compose logs -f 
docker-compose logs -f elasticsearch
  • 1
  • 2

3.12、遇到问题

问题1

执行docker-compose up -d命令或者其他docker-compose 命令时报错:

ERROR: Top level object in ‘./…/docker-compose.yml’ needs to be an object not ‘<class ‘NoneType’>’

解决办法

cd docker-compose-service		#切换到docker-compose-service文件夹下

docker-compose up -d		#启动容器
  • 1
  • 2
  • 3

问题2

测试-查看elasticsearch版本信息:http://ip:9200的时候访问不了,页面404

我的是访问地址是: http://123.56.71.102:9200

docker-compose logs -f elasticsearch
  • 1

查看日志发现是docker启动elasticsearch时内存不足问题

解决方法

系统centos7(阿里云轻量级服务器)

cat /etc/redhat-release
  • 1

docker ps查看容器并没有启动

docker ps
  • 1

docker ps -a 查看容器确实创建了

docker ps -a
  • 1
elasticsearch启动时遇到的错误:max virtual memory areas vm.max_count(65530) is too low...

问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;

解决步骤:

1.先切换到root用户;

2.执行命令:

sysctl -w vm.max_map_count=262144

可以查看结果:

sysctl -a|grep vm.max_map_count

会显示如下信息:

vm.max_map_count = 262144

注意:
上述方法修改之后,如果重启虚拟机将失效,所以:

一劳永逸的解决办法:

在/etc/sysctl.conf文件的最后添加一行代码:

vm.max_map_count=262144

即可永久修改。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

修改jvm.options文件配置
首先查找jvm.options文件位置(每个服务器的位置可能不同)

[root@iZ2ze19s1rdzjjp5gfjaxxZ docker-compose-service]# find / -name jvm.options

 
/var/lib/docker/overlay2/49a2b650efb59c15193c66816a5c5295a3bed005651073e86d60c4ee179b0020/merged/usr/share/elasticsearch/config/jvm.options
  
/var/lib/docker/overlay2/6ca0cfbb248af40428cbe5b9112fc76b07dcc9155c7921f5bae36e1e29dcce89/diff/usr/share/elasticsearch/config/jvm.options

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

vim进入文件修改虚拟机最小内存

vi
/var/lib/docker/overlay2/49a2b650efb59c15193c66816a5c5295a3bed005651073e86d60c4ee179b0020/merged/usr/share/elasticsearch/config/jvm.options

vi /var/lib/docker/overlay2/6ca0cfbb248af40428cbe5b9112fc76b07dcc9155c7921f5bae36e1e29dcce89/diff/usr/share/elasticsearch/config/jvm.options
  • 1
  • 2
  • 3
  • 4

找到-Xms属性,修改成512m(我的elasticsearch:7.4.2默认为1g)

保存并退出
vim中按i进入编辑模式,按ESC退出编辑模式,按:进入命令模式,然后在底部命令行输入w为保存,q为退出,q!为强制退出。

再次启动容器,docker ps查看容器启动成功

如果这时还是启动不了,使用top命令查看消耗cpu较多的进程

使用kill -9 进程号 杀死进程

再次启动elasticsearch就可以了![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ja1LfKbT-1663489635739)(C:/Users/28431/AppData/Roaming/Typora/typora-user-images/image-20210721142301901.png)]

kibana也可以正常访问了,如果访问不了就等几分钟再试试!

问题3

引入了一个镜像,由于要修改一个参数,因此要进入容器中,一般使用

docker exec -it 容器名 /bin/bash
  • 1

然而报错:

OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: “281c4544b77c”: executable file not found in $PATH: unknown

解决方法
原来该镜像是使用alpine制作的,要进入该容器需要输入

docker exec -it 容器名 /bin/shdocker exec -it kibana /bin/shdocker exec -it es7 /bin/shnetwork.host: 123.56.71.102
  • 1

问题4

访问Kibana: http://123.56.71.102:5601/app/kibana出错

解决办法

docker inspect es7  |grep IPAddress
  • 1
  1. 查看ElasticSearch 的容器内部 ip:
docker inspect 容器IDdocker inspect e80a93e11ab7
  • 1

找到Networks下的IPAddress:

记住该IP

IPAddress:	172.17.0.3
  • 1
  1. 进入Kibana容器:
docker exec -it 容器名 /bin/bashdocker exec -it kibana /bin/sh		#进入kibanadocker exec -it es7 /bin/sh				#进入elasticsearch
  • 1
cd configvi kibana.yml
  • 1

修改对应的ip,将"http://elasticsearch:9200" 中的 elasticsearch 替换成第一步的ip就好了。

server.name: kibanaserver.host: "0"elasticsearch.hosts: [ "http://172.17.0.3.102:9200" ]xpack.monitoring.ui.container.elasticsearch.enabled: true
  • 1

我的设置

  1. 修改完成后退出容器,再重启容器就好了

docker stop kiban容器id
docker restart kibana容器id
再次访问localhost:5601, 正常了

问题5
1、内存不足问题  因为练手使用的是aliyun,内存只有1GB,而es默认设置jvm最少需要1GB的堆内存,因此在启动时会报一个内存分配错误,具体的错误截图没保留,因此就不贴了。  解决方法:修改config/jvm.options里面的-Xms和-Xmx的值为合适大小。2、can not run elasticsearch as root   [看网上的文章说是不能用root用户启动](https://www.cnblogs.com/sandyyeh/p/8413724.html),需要换其它用户。  解决方法:我是执行adduser命令新增了一个esuser用户,再把es的文件夹移动到home/esuser下面,再更改es文件夹的拥有者sudo chown -R esuser es文件夹,su esuser然后再执行脚本启动成功。 3、es启动是在前台  启动es后,启动信息都显示在前台,无法切换出去,用ctrl+c会把es的进程关掉  解决方法:我是用sh ./ bin/elasticsearch **-d** 来后台启动es的。4、在aliyun启动服务后,无法在自己的浏览器上访问es服务  就像开头那个文章链接里说的,服务启动成功后要访问下127.0.0.1:9200来看看服务启动成功没 ,但是在aliyun启动后,ssh里访问127.0.0.1:9200是没问题的,但是我PC浏览器上无法访问。  这里有两个问题,1是没把9200端口添加到aliyun后台的安全组规则白名单里面,2是es启动默认只监听127.0.0.1(本地环回)  针对阿里云的安全组规则白名单我就不细说了,网上都有文章的,我这里只说说修改es只监听本地环回问题  解决方法:修改config/elasticsearch.yml,把network.host前面的注释符号去掉,并把值改为0.0.0.0;把discovery.seed_hosts前面的注释符号去掉,并把值改为0.0.0.0,修改完之后重启服务,然后就能在自己的PC浏览器上访问9200端口了。  改成0.0.0.0的一个弊端就是公网任何IP段都能直接访问你这个es的端口服务了,这个问题自己斟酌。
  • 1
其他
在使用docker时,如何追加端口最为方便正在使用的容器,在开发过程中突然需要 443 端口,但是之前run的时候没有添加这个端口,现在想添加,除了export出来后重新run的方法外,还有更好的吗?1.第一步,找到这个Docker容器的IP地址。例如:[root@iZ2ze19s1rdzjjp5gfjaxxZ ~]# docker inspect 'a362c88654dd' | grep IPAddress显示:        "IPAddress": "172.17.0.1",        "SecondaryIPAddresses": null,2.增加iptables映射iptables -t nat -A DOCKER -p tcp --dport 4430 -j DNAT --to-destination 172.17.0.3:443
  • 1
systemctl start firewalld  
  • 1

四、docker-compose常用命令

docker-compose up -d创建容器并运行
docker-compose down删除容器
docker-compose start开始运行
docker-compose stop结束运行
docker-compose images查看已经安装好的镜像
docker-compose ps查看目前compose下面的service
docker-compose exec 容器名 bashexec 显示的镜像

flask 和redis docker-compose 实例 标题上边有源码地址

Dockerfile 创建容器,docker-compse实现部署

pwd more Dockerfilemore app.py more docker-compose.yml
  • 1

up 安装组下的容器集合

默认的yml的文件名称是当前目录下的docker-compose.yml,如果需要指定:
docker-compose -f 文件名 up
docker-compose up -d 后台运行不显示日志

pwdcurl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b81aace9.m.daocloud.iosudo docker-compose -f docker-compose.yml up
  • 1

建议使用docker-compose up -d 后台来运行,如果不后台运行很麻烦ctrl+c的话上边的应用就关闭了。

五、删除容器和镜像

如果安装出错,要删除所有容器和nacos_config数据库重头再来

5.1、删除容器

docker-compose ps查看正在运行的镜像
docker-compose stop结束运行
docker-compose down删除容器
docker ps -a查看运行过的容器

5.2、删除镜像

docker images查看已经安装了的镜像
docker rmi [IMAGE ID]根据镜像ID删除单个镜像
docker rmi [IMAGE ID] [IMAGE ID] …根据镜像ID批量删除镜像

docker ps -a查看运行过的容器
docker rm [IMAGE ID] [IMAGE ID] …根据容器ID批量删除容器
docker rmi [IMAGE] [IMAGE] …根据镜像名称批量删除镜像

docker ps查看正在运行的容器
docker stop [CONTAINER ID] [CONTAINER ID] …停止正在运行的容器
docker rm [CONTAINER ID] [CONTAINER ID] …根据容器ID批量删除容器
docker rmi [IMAGE] [IMAGE ID] …根据镜像名称批量删除镜像
docker rmi [repository] [tag]根据仓库名称和标记删除IMAGE ID相同的镜像

根据仓库名称和标记删除IMAGE ID相同的镜像

列如:

docker rmi docker.io/redis:3.2
  • 1

5.3、同时删除对应的文件

5.4、删除对应数据库

如果访问不了nacos, 就连同把nacos_config数据库删了重头再来亿遍,会成功的

5.5、启动镜像

六、linux安装和卸载JDK

6.1、安装JDK

方法一

从官网上下载linux版本的JDKjdk-8u172-linux-x64.tar.gz</

通过ftp或者rz命令上传到linux

我这里需要把JDK安装在/usr/local目录下,在/usr/local下新建文件加java

mkdir /usr/local/java
  • 1

tar命令解压JDK包,解压地址是 /usr/local/java

tar -zxvf jdk-8u172-linux-x64.tar.gz -C /usr/local/java
  • 1

img

进入安装地址,可以看到有JDK的安装目录

接下来配置环境变量

vi命令打开/etc/profile

vi /etc/profile
  • 1

在文件中加入

#Set Java_Environmentexport JAVA_HOME=/usr/local/java/jdk1.8.0_172export JRE_HOME=/usr/local/java/jdk1.8.0_172/jreexport CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
  • 1

加载环境变量

source /etc/profile
  • 1

至此JDK安装完毕

判断JDK是否安装成功java -versionjava javac
  • 1
方法二

我这里需要把JDK安装在/usr/local目录下,在/usr/local下新建文件加java文件

mkdir /usr/local/java
  • 1

从华为云下载

cd /usr/local/javawget https://repo.huaweicloud.com/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz
  • 1

解压

tar命令解压JDK包,解压地址是 /usr/local/java

tar -zxvf jdk-9.0.1_linux-x64_bin.tar.gz -C /usr/local/java 
  • 1

或者

tar -zxvf jdk-8u172-linux-x64.tar.gz -C /usr/local/java
  • 1

配置JAVA_HOME

vi /etc/profile
  • 1

添加下面内容

#Set Java_Environmentexport JAVA_HOME=/usr/local/jdk-9.0.1export JRE_HOME=/usr/local/jdk-9.0.1/jreexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
  • 1

或者

#Set Java_Environmentexport JAVA_HOME=/usr/local/java/jdk1.8.0_172export JRE_HOME=/usr/local/java/jdk1.8.0_172/jreexport CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
  • 1

加载环境变量

source /etc/profile
  • 1

验证是否安装成功

java -version
  • 1

成功!

方法三

1、下载jdk安装文件jdk-6u10-linux-i586-rpm.bin

2、上传jdk-6u10-linux-i586-rpm.bin到Linux服务器上,并在shell下执行以下命令

chmod 755 jdk-6u10-linux-i586-rpm.bin./jdk-6u10-linux-i586-rpm.bin
  • 1

这时会有一段Sun的协议,敲几次空格键,当询问是否同意的时候,敲yes就可以了。

程序会自动生成一个jdk-6u10-linux-i586-rpm.rpm文件,这是主程序包

下面来安装

rpm -ivh jdk-6u10-linux-i586-rpm.rpm 		#默认安装在/usr/java中
  • 1

3、设置环境变量(.bashrc文件):

修改用户主目录中的.bashrc文件,添加jdk环境变量。

vim .bashrc
  • 1
#Set Java_Environment  set JAVA_HOME=/usr/javaexport JAVA_HOMEG1N%P o:z3CF^A0setPATH=$PATH:$JAVA_HOME/binexport PATHset CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport CLASSPATH
  • 1

加载环境变量

source /.bashrc
  • 1

当然也可以通过更改/etc/profile来实现,但是不推荐这么做,因为这样的设置将对所有用户的shell都生效,对系统安全会产生影响。下面来验证一下变量设置是否生效(在验证前先logout一下,再重新登陆)。如果要使某个用户具有运行java命令的权限,只要修改其bash初始化文件即可。

vi /etc/profile

中的内容可以这样添加

3选1:1、#Set Java_Environmentexport JAVA_HOME=/usr/local/jdk-9.0.1export JRE_HOME=/usr/local/jdk-9.0.1/jreexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin  2、#Set Java_EnvironmentJAVA_HOME=/usr/local/java/jdk-9.0.1JRE_HOME=/usr/local/java/jdk-9.0.1/jrePATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binCLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libexport JAVA_HOME JRE_HOME PATH CLASSPATH  3、#Set Java_Environment  export JAVA_HOME=/usr/local/java/jdk-9.0.1export JRE_HOME=/usr/local/java/jdk-9.0.1/jreexport CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
  • 1

6.2、卸载JDK

方法一(推荐)

判断jdk是否安装(显示版本号等信息,说明已经安装)

java -versionjavajavac
  • 1
which java		查看JDK的安装路径 
  • 1

rm -rf JDK地址(卸载JDK)

rm -rf /usr/local/java/jdk-9.0.1/
  • 1

查看是否卸载完毕

java -versionjavajavac
  • 1

vi命令编辑文件profile

vi /etc/profile
  • 1

删除配置的环境变量

删除用户主目录中/root)的.bashrc文件中配置的jdk环境变量

vim .bashrc
  • 1
#Set Java_Environment  set JAVA_HOME=/usr/javaexport JAVA_HOMEG1N%P o:z3CF^A0setPATH=$PATH:$JAVA_HOME/binexport PATHset CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport CLASSPATH
  • 1

至此JDK卸载完毕

方法二

卸载默认的JDK:

用root用户登录到系统,打开一个终端输入

rpm -qa | grep
  • 1

显示内容其中包含以下两行信息

java-1.4.2-gcj-compat-1.4.2.0java-1.4.2-gcj-compat-devel-l.4.2.0
  • 1

开始卸载jdk

rpm -e java-1.4.2-gcj-compat-1.4.2.0rpm -e java-1.4.2-gcj-compat-devel-l.4.2.0
  • 1

卸载其他自己安装的jdk直接使用rpm -e java-xxxx

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/388787
推荐阅读
相关标签
  

闽ICP备14008679号