-->

服务器docker的安装与docker中MySQL、mongodb、Oracle与redis的安装

1. 第一步 安装docker

介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

简单讲,建在虚拟机上的虚拟机,有了docker,安装数据库更加便捷,即使崩了,直接操作docker就行

注意:下述所有,命令若出现下图所示错误,需要在所有命令前加上sudo,sudo代表以管理员权限运行该命令
image

安装

清除可能遗留或者旧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

image

查看镜像:

docker images

image

拉取镜像为容器:

docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

image

进入容器配置:

docker exec -it oracle11g bash

image

切换为root用户(因为从上述图片看出无法登录):

su root 

密码:helowin

编辑环境变量:

打开配置文件:

vi /etc/profile 

image

在文件最后写上下面内容:

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 为保存退出

image

加载环境变量:

source /etc/profile

image

创建软连接:

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

image

切换到oracle 用户:

su - oracle 

这里还要说一下,一定要写中间的那条 - 必须要,否则软连接无效

image

登录:

sqlplus /nolog

image

建立连接:

conn /as sysdba

image

修改密码:

alter user system identified by oracle;        #修改system用户账号密码;
alter user sys identified by oracle;        #修改sys用户账号密码;

image

创建账号与密码:

create user test identified by test;         #创建内部管理员账号密码;

用户名:test 密码:test

image

授权:

grant connect,resource,dba to test;         #将dba权限授权给内部管理员账号和密码;

image

设置:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;         #修改密码规则策略为密码永不过期;(会出现坑,后面讲解)
alter system set processes=1000 scope=spfile;         #修改数据库最大连接数据;

image

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

image

如果出现下述容器一直在restart的情况:
image
可以查看日志:

docker logs 容器名/容器id

如果日志中报错如下:

Fatal: Can't initialize Background Jobs. Error message: Operation not permitted

image

那么恭喜你中大奖了,因为这说明你的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

image

进入到容器:

docker exec -it 容器id redis-cli #调用客户端

image

测试:

set name tom

密码:rootroot

参考文章:https://blog.csdn.net/OUCFSB/article/details/124605019

posted @   ꧁ʚ星月天空ɞ꧂  阅读(586)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示