服务器docker的安装与docker中MySQL、mongodb、Oracle与redis的安装
1. 第一步 安装docker
介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
简单讲,建在虚拟机上的虚拟机,有了docker,安装数据库更加便捷,即使崩了,直接操作docker就行
注意:下述所有,命令若出现下图所示错误,需要在所有命令前加上sudo,sudo代表以管理员权限运行该命令
安装
清除可能遗留或者旧docker:
apt-get remove docker docker-engine docker.io containerd runc
设置国内仓库:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
注意:上述命令执行的非常慢,因为些系统会自动执行“apt-get update”,所以请耐心等待
在这里我的服务器(ubuntu22)报了个错:Command 'curl' not found
curl安装命令:
$ sudo snap install curl
更新apt-get包:
apt-get update
安装apt依赖包:
apt-get install apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
写入软件镜像源信息:
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
更新apt:
apt update
安装新版本docker:
apt-get install docker-ce docker-ce-cli containerd.io
添加docker用户组:
sudo groupadd docker
将当前用户添加至docker用户组,其中XXXXX为你当前账户:
sudo gpasswd -a XXXXX docker
即与服务器建立连接时的账号
更新docker用户组:
newgrp docker
启动docker:
# 这条命令在wsl下的虚拟机不可用(win10自带的Linux操作系统不可用)
systemctl start docker
# 上面的命令不要用时,可以试试下面这一条
service docker start
检查docker:
# 查看docker版本号
docker version
配置docker
跳转对应位置
# 跳转到 /etc/docker/ 目录下
cd /etc/docker/
新建配置文件:
# 添加daemon.json
touch daemon.json
编辑配置文件:
# 编辑daemon.json文件
vi daemon.json
在配置文件中写入如下信息:
# 输入如下信息
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"registry-mirrors": ["https://hub-mirror.c.163.com","https://gxeo3yz7.mirror.aliyuncs.com"]
}
注意:实际上这几步如果用鼠标到固定位置下新建文件,写入内容,或者直接在windows系统写完传到服务器也是可以的,但是我这里权限不够,不允许我这样干,所以只能用命令行。。。。。
编辑文件:vi *****
****为文件名
保存文件::wq
在文件内直接“:”,然后wq
强制退出::q!
重启docker,使配置文件生效:
service docker restart
上述参考原文: https://blog.csdn.net/yezhijing/article/details/127506168
2. docker安装MySQL
搜索镜像:
docker search mysql
拉取镜像:
搜索出来的第一个就行,不指定版本就获取最新版,我这里用5.7
docker pull mysql:5.7
拉取镜像为容器:
sudo docker run -p 3306:3306 --name mysql -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
注:如需设置开机自启,可以在--name之前加上 -d --restart=always
切换到MySQL配置文件:
cd /usr/local/mysql/conf
编辑配置文件:
vim my.cnf
配置文件内添加内容:
[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
docker重启MySQL:
docker restart mysql
MySQL数据库默认账号:root 默认密码:123456
参考文章:https://blog.csdn.net/qq_41890624/article/details/127849851
docker安装mongodb
创建主机挂载配置目录:
mkdir -p /docker/mongodb/data && cd /docker/mongodb
生成启动文件:
cat <<EOF> start.sh
#!/bin/bash
MONGODB_DIR=`pwd`
docker stop mongodb
docker rm mongodb
docker run -d \\
--name mongodb \\
--restart always \\
--privileged \\
-p 27017:27017 \\
-v \${MONGODB_DIR}/data:/data/db \\
-e MONGO_INITDB_ROOT_USERNAME=admin \\
-e MONGO_INITDB_ROOT_PASSWORD=123456 \\
mongo:4.2.2 mongod --auth
EOF
运行启动文件:
sh start.sh
参考文章:https://blog.csdn.net/qq_30665009/article/details/126586070
3. docker安装Oracle11g
拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
查看镜像:
docker images
拉取镜像为容器:
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
进入容器配置:
docker exec -it oracle11g bash
切换为root用户(因为从上述图片看出无法登录):
su root
密码:helowin
编辑环境变量:
打开配置文件:
vi /etc/profile
在文件最后写上下面内容:
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
注:a为插入,esc退出插入模式,:wq 为保存退出
加载环境变量:
source /etc/profile
创建软连接:
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切换到oracle 用户:
su - oracle
这里还要说一下,一定要写中间的那条 - 必须要,否则软连接无效
登录:
sqlplus /nolog
建立连接:
conn /as sysdba
修改密码:
alter user system identified by oracle; #修改system用户账号密码;
alter user sys identified by oracle; #修改sys用户账号密码;
创建账号与密码:
create user test identified by test; #创建内部管理员账号密码;
用户名:test 密码:test
授权:
grant connect,resource,dba to test; #将dba权限授权给内部管理员账号和密码;
设置:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; #修改密码规则策略为密码永不过期;(会出现坑,后面讲解)
alter system set processes=1000 scope=spfile; #修改数据库最大连接数据;
4. docker安装redis
拉取镜像:
docker search redis
拉取镜像 默认最新版本:
docker pull redis
拉取镜像为容器:
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /opt/myredis/redis.conf:/etc/redis/redis.conf -v /opt/myredis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass rootroot
查看容器状态:
docker ps -a
如果出现下述容器一直在restart的情况:
可以查看日志:
docker logs 容器名/容器id
如果日志中报错如下:
Fatal: Can't initialize Background Jobs. Error message: Operation not permitted
那么恭喜你中大奖了,因为这说明你的redis容器与你的电脑环境不兼容。。。。。。。。。。。。
解决办法:
停止容器(myredis为容器名):
docker stop myredis
删除容器(myredis为容器名):
docker stop myredis
重新拉取redis5.0的容器:
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /opt/myredis/redis.conf:/etc/redis/redis.conf -v /opt/myredis/data:/data -d redis:5.0 redis-server /etc/redis/redis.conf --appendonly yes --requirepass rootroot
进入到容器:
docker exec -it 容器id redis-cli #调用客户端
测试:
set name tom
密码:rootroot
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析