0
点赞
收藏
分享

微信扫一扫

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

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影响当前用户

举报

相关推荐

0 条评论