首页 > 数据库 >Docker容器安装示例(nginx、redis、nacos、oracle)

Docker容器安装示例(nginx、redis、nacos、oracle)

时间:2023-05-19 17:02:59浏览次数:49  
标签:示例 redis nacos nginx conf home docker

1.nginx示例

1.创建容器

1.查看是否有nginx镜像
docker images
2.如果没有镜像,可以搜索镜像
docker search nginx
3.指定版本拉取nginx
docker pull nginx:1.20.0
4.查看镜像
docker images
5.创建容器(-d后台运行,-p容器80端口映射到宿主机8080端口,指定名称nginx-test,指定镜像ID:7ab27dbbfbdf)
docker run -d -p 8080:80 --name nginx-test 7ab27dbbfbdf
6.查看容器
docker ps
7.尝试访问
问题一:
	防火墙未开启:
	1.查看防火墙状态
	systemctl status firewalld
	2.启动防火墙
	systemctl start firewalld 
	3.放开8080端口
	firewall-cmd --zone=public --add-port=8080/tcp

2.进入容器(仅参考)

1.进入容器
docker exec -it nginx-test /bin/bash
2.进入配置文件
cd /etc/nginx
3.修改配置文件
vim nginx.conf
问题一:
	没有vim命令
	1.同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包(如失败,重启docker)
	apt-get update 
	2.安装vim命令
	apt-get install vim
问题二: 
	安装速度慢
	# 进入apt文件夹
	cd /etc/apt
	# 备份
	cp sources.list sources.list.bak
	#执行命令 更改apt-get 
	echo "">sources.list
	echo "deb http://ftp2.cn.debian.org/debian/ buster main">>sources.list
	echo "deb http://ftp2.cn.debian.org/debian/debian-security buster/updates main">>sources.list
	echo "deb http://ftp2.cn.debian.org/debian/debian buster-updates main">>sources.list
	#更改完成后执行命令
	apt-get update 
	# 如果不管用 执行以下命令 改回
	rm sources.list
	mv sources.list.bak sources.list

3.映射目录

1.在宿主机创建nginx相关文件夹(/home下)
mkdir nginx
cd nginx
mkdir conf
mkdir logs
mkdir html
2.复制容器的配置(将/etc/nginx下所有文件 复制到/home/nginx/conf下 注意: /.)
docker cp -a nginx-test:/etc/nginx/.  /home/nginx/conf
3.停止容器
docker stop nginx-test
4.删除容器
docker rm nginx-test
5.重新创建容器,并映射目录(宿主机目录:docker容器目录)
docker run -d -p 8080:80 --name nginx-test --restart always --privileged=true -v /home/nginx/conf/:/etc/nginx/ -v /home/nginx/logs:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html 7ab27dbbfbdf
6.在html文件夹下放入测试用的index.html

4.index.html

<!DOCTYPE html>
<html>
<head>
<title>Welcome to HEHAI!</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
	*{
		padding: 0px;
		margin: 0px;
	}
	.time{
		width: 100%;
		height: auto;
		z-index: 99;
		font-size: 60px;
		text-align: center;
		margin-top: 10%;
		color: rgb(94,166,240);
		font-weight: 800;
		
	}
	.container{
		width: 100%;
		height: 100%;
		position: absolute;
		background-size: 100% 100%;
	}
</style>
</head>
<body>
	
<div class="container" >
	<div class="time" id="time">
	</div>	
</div>
</body>
<script type="text/javascript">
	 var mynow = new Date();//默认的获取的是当前时间
              //通过调用日期对象的方法来重新获取当前的日期时间
             //mynow.setFullYear(2016);
             var year = mynow.getFullYear();//获取年
             var month = mynow.getMonth()+1;//获取月
             var day = mynow.getDate();//获取日
             var hour =mynow.getHours();//获取小时
             var minute =mynow.getMinutes();//获取分钟
             var second =mynow.getSeconds();//获取秒
             var strdate = year+"年"+month+"月"+day+"日 "+hour+":"+minute+":"+second;
             document.getElementById("time").innerHTML=strdate;
             console.log(strdate)
</script>
</html>

2.redis示例

1.拉取镜像
docker pull redis 
2.创建映射文件夹(/home下)
mkdir redis
cd redis
mkdir conf
mkdir data
3.下载redis配置文件redis.conf(也可以先创建一次redis将配置复制出来,参考nginx)
github下载redis找到redis.conf,配置好后将该文件上传到2中创建的conf文件夹下
设置最大内存
maxmemory 1073741824
设置最大内存淘汰策略(参考)
maxmemory-policy 
设置密码
requirepass 密码
开启远程访问
注释 bind 127.0.0.1 -::1
修改 protected-mode no
4.创建容器
docker run -d -p 6379:6379 --name redis-test --restart always  -v /home/redis/conf/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data redis:latest redis-server /etc/redis/redis.conf --appendonly yes

3.nacos示例

1.拉取镜像
docker pull nacos/nacos-server:2.0.2
2.创建nacos-mysql数据库
导入nacos-mysql.sql文件
3.创建映射文件夹(/home下)
mkdir nacos
cd nacos
mkdir conf
mkdir logs
mkdir data
4.创建一个临时容器
docker run -d --name nacos01  nacos/nacos-server:2.0.2
5.复制配置文件等
docker cp -a nacos01:/home/nacos/conf/. /home/nacos/conf
docker cp -a nacos01:/home/nacos/logs/. /home/nacos/logs
docker cp -a nacos01:/home/nacos/data/. /home/nacos/data
(可以使用本命令跳过步骤3:docker cp -a nacos01:/home/nacos/. /home/nacos)
6.删除临时容器
docker rm -f nacos 
7.创建容器
docker run -d -p 8848:8848 --name nacos-test -e MODE=standalone -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=192.168.7.8 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos-mysql -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -v /home/nacos/conf:/home/nacos/conf -v /home/nacos/logs:/home/nacos/logs -v /home/nacos/data:/home/nacos/data nacos/nacos-server:2.0.2
8.访问要加/nacos/index.html
http://192.168.7.8:8848/nacos/index.html

4.oracle示例

1.拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
2.创建容器(如果镜像名称过长可以先修改)
docker run -d -p 1521:1521 --name oracle11g 镜像ID
3.进入容器
docker exec -it 容器id /bin/bash
4.切换到root
su root
默认密码:helowin
5.编辑参数
vi /etc/profile
6.在最后加入以下参数
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
7.按esc :wq保存退出
8.加载变量(重要:每次进入容器需要重新加载再进入sqlplus,永久生效参考问题3)
source /etc/profile
9.切换到oracle(必须切换到此用户)
su - oracle
10.登录sqlplus ( sqlplus / as sysdba )
sqlplus /nolog
11.操作系统认证
conn /as sysdba
12.修改sys和system密码
alter user system identified by system;
alter user sys identified by sys;
备注:
关闭数据库
shutdown immediate;
启动数据库
startup;
问题1:
将服务名helowin改为orcl
1.进入sqlplus
2.查看当前服务名
show parameter service_name;
3.修改服务名
alter system set service_names='orcl' scope=both;
问题2:
尝试将sid由helowin更换为orcl 
参考:https://blog.csdn.net/Liveor_Die/article/details/105177966
查看当前sid
echo $ORACLE_SID
或执行进入sqlplus之后
select instance from v$thread;
问题3:
将/etc/profile下的环境参数永久生效
1.进入用户的~目录
cd 
2.查看.bashrc
ls -al
3.编辑.bashrc
vi .bashrc
4.在文件底部加入 source /etc/profile
5.重启容器
原因:
.bashrc是在系统启动后就会自动运行 profile是在用户登录后才会运行
/etc/profile影响所有用户 .bashrc影响当前用户

标签:示例,redis,nacos,nginx,conf,home,docker
From: https://blog.51cto.com/u_16085354/6314003

相关文章

  • Redis学习手册(持久化)
    一、Redis提供了哪些持久化机制:   1).RDB持久化:   该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。       2).AOF持久化:   该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动......
  • k8s快速部署Redis单机
    1.创建Redis配置apiVersion:v1data:redis.conf:|-bind0.0.0.0port6379requirepassSystem@123pidfile/var/run/redis_6379.pidsave9001save30010save6010000rdbcompressionyesrdbchecksumyesdbfilenamedum......
  • java面试题--Redis
    一、说一下redis的持久化机制原理?RDB文件:redisdatabase。存储的是某个时间点的数据库内容的快照,是结果。redis默认的持久化策略。落盘策略:使用SAVE或者BGSAVE命令。(1)SAVE:有主线程执行,会阻塞客户端。(2)BGSAVE:会fork出一个子进程,不会出现阻塞问题。子进程使用写时拷贝的策......
  • Nacos必知必会:这些知识点你一定要掌握!
    前言Nacos是一个开源的服务发现、配置管理和服务治理平台,是阿里巴巴开源的一款产品。Nacos可以帮助开发者更好地管理微服务架构中的服务注册、配置和发现等问题,提高系统的可靠性和可维护性。本文将介绍Nacos的必知必会知识点,包括服务注册与发现、配置管理、命名空间等内容......
  • linux安装redis的多种方式
    一、通用方式要在Linux上安装Redis,可以按照以下步骤进行操作:1.打开终端,使用以下命令下载Redis的压缩包:wgethttp://download.redis.io/releases/redis-x.x.x.tar.gz注意将"x.x.x"替换为你想要下载的Redis版本号。2.解压下载的压缩包:tarxzfredis-x.x.x.tar.gz进入......
  • NACOS 2.2.2 com.alibaba.nacos.api.exception.NacosException: user not found!
    因服务端设置了鉴权,nacos.core.auth.enabled=true(参照官方文档https://nacos.io/zh-cn/docs/auth.html)客户端需增加相关配置(username和password)spring:application:name:xxxxxcloud:nacos:server-addr:xxxxxxconfig:file-extensio......
  • 【redis】哨兵监控原理-springboot 监控
    连接序列图解: 连接步骤:1.boot应用启动时,会从yml文件中配置的多个sentinel中抽取一个进行连接,sentinel有单独的账号密码,需要区分sentinel于redis主节点的账号密码,同时需要将连接的主从节点masterName告知sentinel。2.boot应用与sentinel协议并鉴权成功后,sentinel会将第一步......
  • deepin安装Redis
    deepin安装Redis一、安装Redissudoapt-getinstallredis-server安装完成之后,Redis服务器会自动启动二、检查Redis服务器系统进程(非必要)ps-aux|grepredis三、查看Redis端口状态(非必要)netstat-nlt|grep6379四、输入redis-cli进入命令模式(非必要) 四、配置Redis(完成......
  • XAF EFCore 示例
    前言在DEV官方建议创建新的XAF项目推荐选择EFCore时,我也第一时间创建了XAF的EFCore项目,这也是我第一次创建这个类型的项目,之前一直使用XPO,避免不了要对比一下。如果熟悉XPO但不了解EFCore的小伙伴来说,会有些迷茫,再加上通过向导创建的项目并不是开箱即用,还需要进行配置,可能会打击......
  • Redis 高级特性 Redis Stream使用
    RedisStream简介RedisStream是Redis5.0版本新增加的数据结构。Stream从字面上看是流类型,但其实从功能上看,应该是Redis对消息队列(MQ,MessageQueue)的完善实现。下文称Stream为队列Stream出现原因:Stream的出现是为了给Redis提供完善的消息队列功能基于Reids的消息队列......