从零开始安装Docker和使用

1、安装docker

旧版本的Docker被称为docker或者docker-engine。在尝试安装新版本以及相关的依赖项之前,请卸载任何此类旧版本。
# 1、如果有旧版本的 先卸载
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                  
在新主机上第一次安装Docker引擎之前,需要设置Docker存储库。之后,您可以从存储库中安装和更新Docker。
# 2、设置存储库
yum install -y yum-utils

# 3、设置镜像仓库  这里默认是国外的,我们使用国内的阿里云的
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新一下索引
yum makecache fast

# 4、安装docker
yum install docker-ce docker-ce-cli containerd.io

安装成功如下,然后启动docker并设置开机自启动

Docker的基本命令

1. 启动docker
systemctl start docker

2. 关闭docker
systemctl stop docker

3. 重启docker
systemctl restart docker

4. 查看docker运行状态
systemctl status docker

5. 设置docker开机自启动

systemctl enable docker

6. 查看docker信息

docker info

2、常用命令

docker run -it 镜像名 #运行镜像,如果没有的话会自动下载
docker pull tomcat:9.0 #下载镜像
docker images #查询所有镜像文件
docker search 名称 # 搜索镜像
docker ps #查询正在运行的容器
docker ps -a #查询所有容器
docker exec -it 容器名 /bin/bash #以交互方式启动并进入容器内
exit #退出容器
docker inspect 容器id #查看容器详细信息
docker attach 容器id #以命令行的形式进入正在运行的命令行
docker rm -f 容器名 # 删除容器
docker rmi -f 镜像id  #删除镜像
ctrl +p +q  # 快捷键 退出容器并保持运行
docker history 镜像id  #查看镜像构建过程(一般是看自己的镜像)
docker logs 容器名(可以简写前几个字母) #查看容器启动日志
docker update 容器名 --restart=always  #设置容器自动重启

3、安装nginx并启动

[root@prod-official-website-01 ~]# docker search nginx   可以使用命令直接搜索,也可以去官方镜像搜索,建议官网
NAME                                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                                             Official build of Nginx.                        18771     [OK]       
unit                                              Official build of NGINX Unit: Universal Web …   6         [OK]       
nginxproxy/nginx-proxy                            Automated Nginx reverse proxy for docker con…   92                   
nginxproxy/acme-companion                         Automated ACME SSL certificate generation fo…   116                  
bitnami/nginx                                     Bitnami nginx Docker Image                      168                  [OK]
bitnami/nginx-ingress-controller                  Bitnami Docker Image for NGINX Ingress Contr…   29                   [OK]
ubuntu/nginx                                      Nginx, a high-performance reverse proxy & we…   96                   
nginxproxy/docker-gen                             Generate files from docker container meta-da…   12                   
kasmweb/nginx                                     An Nginx image based off nginx:alpine and in…   6                    
rancher/nginx-ingress-controller                                                                  11                   
rancher/nginx-ingress-controller-defaultbackend                                                   2                    
bitnami/nginx-exporter                                                                            5                    
rancher/nginx                                                                                     2                    
rapidfort/nginx-ib                                RapidFort optimized, hardened image for NGIN…   10                   
rapidfort/nginx                                   RapidFort optimized, hardened image for NGINX   14                   
vmware/nginx-photon                                                                               1                    
rapidfort/nginx-official                          RapidFort optimized, hardened image for NGIN…   10                   
nginxproxy/forego                                 Foreman in Go                                   0                    
vmware/nginx                                                                                      2                    
rancher/nginx-conf                                                                                0                    
bitnamicharts/nginx                                                                               0                    
linuxserver/nginx                                 An Nginx container, brought to you by LinuxS…   204                  
privatebin/nginx-fpm-alpine                       PrivateBin running on an Nginx, php-fpm & Al…   77                   [OK]
elestio/nginx-auto-ssl                            The simpliest solution to add SSL cert to yo…   0                    
rancher/nginx-ssl                                                                                 0                    
[root@prod-official-website-01 ~]# docker pull nginx  下载安装nginx
Using default tag: latest
latest: Pulling from library/nginx
faef57eae888: Pull complete 
76579e9ed380: Pull complete 
cf707e233955: Pull complete 
91bb7937700d: Pull complete 
4b962717ba55: Pull complete 
f46d7b05649a: Pull complete 
103501419a0a: Pull complete 
Digest: sha256:08bc36ad52474e528cc1ea3426b5e3f4bad8a130318e3140d6cfe29c8892c7ef
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@prod-official-website-01 ~]# docker images   查看镜像文件
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
nginx         latest    021283c8eb95   2 weeks ago    187MB
hello-world   latest    9c7a54a9a43c   2 months ago   13.3kB

# 运行镜像文件 -d 后台运行 --name给容器命名 -p暴露端口将宿主机3344端口映射到容器中80端口
[root@prod-official-website-01 ~]# docker run -d --name nginx01 -p 3344:80 nginx  
05495acb7b16ecd37f78edb35f91bbca2d75d722bc65f3def3de843da6c09c57
[root@prod-official-website-01 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
05495acb7b16   nginx     "/docker-entrypoint.…"   15 seconds ago   Up 14 seconds   0.0.0.0:3344->80/tcp, :::3344->80/tcp   nginx01
[root@prod-official-website-01 ~]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

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

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

暴露端口

[root@prod-official-website-01 ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
05495acb7b16   nginx     "/docker-entrypoint.…"   13 minutes ago   Up 13 minutes   0.0.0.0:3344->80/tcp, :::3344->80/tcp   nginx01
[root@prod-official-website-01 ~]# docker exec -it nginx01 /bin/bash  进入
root@05495acb7b16:/# whereis nginx  查看配置文件
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@05495acb7b16:/# cd /etc/nginx  
root@05495acb7b16:/etc/nginx# ls
conf.d	fastcgi_params	mime.types  modules  nginx.conf  scgi_params  uwsgi_params
root@05495acb7b16:/etc/nginx# 

4、图形化界面管理工具

portainer

下载:

docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer #安装命令

访问测试:

5、容器数据卷

数据如果都在容器中,容器删了之后数据都没了,那么有个需求:数据持久化;

容器之间有个数据共享技术,容器中产生的数据存储在本地,这就是卷技术,目录的挂载:将容器内的目录,挂载到linux上

使用数据卷

方式一:使用命令直接挂载

docker  run -it -v /home/ceshi:/home contos /bin/bash #运行并挂载

#启动起来之后查看容器详细信息
docker inspect 容器id #查看容器详细信息



"Mounts": [  #这里就是挂载信息
            {
                "Type": "bind",
                "Source": "/home/ceshi", #主机内地址
                "Destination": "/home",  #docker容器内的地址
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

6、docker安装mysql5.7并启动

#下载镜像
docker pull mysql:5.7

#启动镜像并挂载,同时设置数据库密码  -v 宿主机目录:容器内目录
docker run -d -p 3306:3306 -v /mydata/mysql/conf:/etc/mysql/conf.d -v /mydata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql5.7 mysql:5.7

#知识点
-d 后台运行
-v 挂载
-p 端口映射
-e 环境配置
--name 容器名字

#启动成功后使用本地sql工具连接成功,创建数据后,本机的数据也有了

7、具名挂载和匿名挂载

8、docker安装nacos并启动

# 下载 nacos-server:v2.2.2  
$ docker pull nacos/nacos-server:v2.2.2       

# 创建 nacos的logs日志文件夹,用于挂载nacos容器的日志
$ mkdir -p /mydata/nacos/logs
#  将服务外的的nacos配置数据移动到 /mydata/nacos/data目录,用于挂载
# $ cp nacos:/usr/local/src/nacos/data /mydata/nacos/data


# 修改nacos配置 application.properties (具体示例,见附件)
$ vi /mydata/nacos/conf/application.properties       
# 创建数据库,不然启动会报错找不到数据库(见附件)

## 创建并启动实例
$ docker run --name nacos \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/conf/application.properties:/home/nacos/conf/application.properties \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/data:/home/nacos/data \
-d nacos/nacos-server:v2.2.2

# 参数说明
-p 8848:8848                           将容器的8848端口映射到主机的8848端口
--name nacos                            将安装的容器指定名为“nacos”
--privileged=true \ 		用于Docker应用容器获取宿主机root权限(特殊权限),如:挂载目录时,需要加入此关键字
--restart=always \			Linux启动后,该docker容器自启动
-v /mydata/nacos/logs:/home/nacos/logs \     将日志文件挂载到主机
-v /mydata/nacos/data:/home/nacos/data \    将容器/home/nacos/data目录 挂载到宿主主机
-v /mydata/nacos/conf/application.properties:/home/nacos/conf/application.properties \
将宿主主机配置文件挂载到docker容器中,替代docker容器的配置文件。
-e  xx=xx    设置环境变量,有多个环境变量就写多个 -e
-d nacos/nacos-server:v2.2.2    指定容器使用哪个images后台运行


# 如配置修改了,则重启docker内部的nacos容器,使新增的配置生效。
$ docker restart nacos

# 滚动查看容器日志
$ docker logs -f -t --tail=20 nacos

# 删除指定容器
$ docker rm -f <容器id>

 #拷贝docker容器内nacos的配置文件到外部
$ docker cp nacos:/home/nacos/conf/application.properties   /mydata/nacos/conf/application.properties

 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.
 */

/******************************************/
/*   表名称 = 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(128) 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,
  `encrypted_data_key` text NOT NULL COMMENT '密钥',
  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';

/******************************************/
/*   表名称 = 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(128) 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='增加租户字段';


/******************************************/
/*   表名称 = 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 '租户字段',
  `encrypted_data_key` text NOT NULL 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';

/******************************************/
/*   表名称 = 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';

/******************************************/
/*   表名称 = 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';

/******************************************/
/*   表名称 = 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容量信息表';

/******************************************/
/*   表名称 = his_config_info              */
/******************************************/
CREATE TABLE `his_config_info` (
  `id` bigint(20) 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 '租户字段',
  `encrypted_data_key` text NOT NULL 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='多租户改造';


/******************************************/
/*   表名称 = 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');

配置文件

##### nacos 2.2.2 版本的配置文件示例 application.properties 

# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
server.tomcat.accesslog.max-days=30
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
server.error.include-message=ALWAYS
# default current work dir
server.tomcat.basedir=file:.
#*************** Config Module Related Configurations ***************#
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
#spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:}
spring.datasource.platform=mysql

# spring.sql.init.platform=${SPRING_DATASOURCE_PLATFORM:}
spring.sql.init.platform=mysql
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=1
# db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
# db.user.0=${MYSQL_SERVICE_USER}
# db.password.0=${MYSQL_SERVICE_PASSWORD}

## 这里的ip一定不能使用 127.0.0.1和localhost!!!要填数据库的公网ip,因为docker容器部署nacos,容器内部一定没有mysql!!!
## 建议修改mysql默认端口,建议创建一个 nacos账号,给这个账号授权,只能操作nacos数据库,操作略。没有的话可以暂时用root账号
db.url.0=jdbc:mysql://1xx.xxx.xxx.xxx:3308/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=

#db.pool.config.connectionTestQuery=SELECT * FROM dual
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
### The default token:
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:}
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:}
## spring security config
### turn off security
nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}
# metrics for elastic search
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
nacos.naming.distro.taskDispatchThreadCount=10
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true

9、创建redis容器

docker run --name redis1 -d \
-v /mydata/redis/config/redis.conf:/usr/local/etc/redis/redis.conf \
-v /mydata/redis/data/:/data/ \
-v  /mydata/redis/log/:/var/log/redis/ \
-p 6379:6379  redis --requirepass yourPassword

将redis的配置文件、数据卷、日志都映射出来,并且设置密码,

关于密码,之前先创建容器再在配置文件里面设置密码不生效,只有在创建容器的时候设置才行,先这样吧

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要从零开始构建 Docker 基础镜像,您需要完成以下步骤: 1. 选择基础操作系统 Docker 基础镜像通常基于一个操作系统,例如 Ubuntu、Debian、CentOS 等等。您需要选择一个适合您需求的操作系统。 2. 安装必要的软件包 在您选择的操作系统上安装必要的软件包。例如,如果您需要在镜像中安装 Python 应用程序,您需要在操作系统上安装 Python。您可以使用操作系统的软件包管理器来安装这些软件包。 3. 添加应用程序 将应用程序添加到镜像中。这可能涉及复制文件或下载代码等操作。 4. 配置应用程序 根据您的需求配置应用程序。例如,您可能需要配置应用程序的环境变量、端口号、数据库连接等等。 5. 保存镜像 完成所有配置后,您需要使用 Dockerfile 来构建和保存镜像。Dockerfile 是一个文本文件,其中包含有关如何构建镜像的指令。例如,您可以使用 `FROM` 指令指定基础镜像、`RUN` 指令来运行命令、`COPY` 指令将文件复制到镜像中等等。完成 Dockerfile 后,您可以使用 `docker build` 命令来构建镜像,并使用 `docker push` 命令将其推送到 Docker Hub 或其他 Docker 镜像仓库。 以下是一个简单的 Dockerfile 示例,可以用来构建一个基于 Ubuntu 20.04 的 Python 应用程序镜像: ``` FROM ubuntu:20.04 RUN apt-get update && \ apt-get install -y python3-pip COPY . /app WORKDIR /app RUN pip3 install -r requirements.txt CMD ["python3", "app.py"] ``` 以上是从零开始构建 Docker 基础镜像的基本步骤,您可以根据您的需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值