目录
4.在Windows下 用MySQL Workbench访问
4.用redis-desktop-manager查看远程连接
2.建立自己的容器,并使用mongo 或 mongosh 登录mongodb
最近配Linux下的软件环境有点晕,MySQL怎么也做不出来远程访问,突然发现有个叫Docker的好东西,做了点笔记,分享给大家。
系统是Centos8.3,开机进入第二个选项CentOS Stream(4.18.0-240.e18.x86_64) 8。系统之家上面下载的,百度盘链接是CentOS-8.3.2011-x86_64-dvd1,用rufus-3.14p制作U盘安装,我的提取码都是1234,主要是可以远程连接,方便本机操作。 系统安装没啥好讲的,基本配置做完,主要是对几个 系统盘的空间分配 要大一点,我的上一个Linux系统就是/var/盘太小了,又怎么也调整不过来,就索性借此机会重装了,操作过程中确保电脑都可以连接互联网,不然好多东西是下不下来的。
一、安装docker
安装操作 官方一点的文档在https://docs.docker.com/engine/install/centos/#install-docker-engine,里面有各种不同系统的,我筛选我用到的步骤给大家借鉴。
1.删除旧版本(不一定要做,我就没做这步)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装yum-utils
包并设置存储库
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3.安装 Docker 引擎
sudo yum install docker-ce docker-ce-cli containerd.io
如果提示有冲突不能装 就把冲突提示里的那个忽略冲突的参数带上 ,这里官方文档没写,估计不是每个人都能遇到。
4.启动Docker
sudo systemctl start docker
5.创建docker
组并添加用户
创建docker
组
sudo groupadd docker
将您的用户添加到docker
组中
sudo usermod -aG docker $USER
激活对组的更改
newgrp docker
6.设置开机启动
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
7.卸载
卸载 Docker Engine、CLI 和 Containerd 包
sudo yum remove docker-ce docker-ce-cli containerd.io
删除所有镜像、容器和卷
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
使用sudo -i 进入root模式可以省略不停的敲sudo。
二、使用Docker部署MySQL数据库
此时要进入root模式,不然没有权限
1.先查找mysql,可以看到很多。
[root@localhost ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11171 [OK]
mariadb MariaDB Server is a high performing open sou… 4242 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 832 [OK]
percona Percona Server is a fork of the MySQL relati… 548 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 90
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 88
centurylink/mysql Image containing mysql. Optimized to be link… 59 [OK]
databack/mysql-backup Back up mysql databases to... anywhere! 45
deitch/mysql-backup REPLACED! Please use http://hub.docker.com/r… 41 [OK]
prom/mysqld-exporter 40 [OK]
tutum/mysql Base docker image to run a MySQL database se… 35
linuxserver/mysql A Mysql container, brought to you by LinuxSe… 30
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 29 [OK]
mysql/mysql-router MySQL Router provides transparent routing be… 21
centos/mysql-56-centos7 MySQL 5.6 SQL database server 20
arey/mysql-client Run a MySQL client from a docker container 18 [OK]
fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron tas… 15 [OK]
yloeffler/mysql-backup This image runs mysqldump to backup data usi… 7 [OK]
genschsa/mysql-employees MySQL Employee Sample Database 7 [OK]
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6
devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offici… 3
ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
jelastic/mysql An image of the MySQL database server mainta… 2
widdpim/mysql-client Dockerized MySQL Client (5.7) including Curl… 1 [OK]
monasca/mysql-init A minimal decoupled init container for mysql 0
2.选择第一个,将镜像拉下来,就键入命令
docker pull mysql
查看自己的镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c60d96bd2b77 4 days ago 514MB
删除掉镜像使用
docker rmi 镜像ID
镜像ID 就是IMAGE ID下面的c60d96bd2b77
3.接着创建自己的镜像容器
docker run -dit -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 mysql
-itd是配置参数
-d, --detach=false
, 指定容器运行于前台还是后台,默认为false-i, --interactive=false
, 打开STDIN,用于控制台交互-t, --tty=false
, 分配tty设备,该可以支持终端登录,默认为false
具体其他参数可以参照Docker run参数详解。
--name是给自己的容器命名,-e配置MySQL的参数,后面的语句设置root用户密码为123456,最后的mysql是镜像名称。
3306:3306 前面的指的是外部访问用的端口号,后面的指的是Docker内部的MySQL设置的端口号。
查看自己的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b368477b8670 mysql "docker-entrypoint.s…" 11 hours ago Exited (0) 11 hours ago mysql1
4.在Windows下 用MySQL Workbench访问
可以更改端口号以区别于服务器系统上原有的MySQL 。
5.后续再启动 这个镜像容器
docker start mysql1
停止容器
docker stop mysql1
删除容器
docker rm mysql1
6.进入容器,并测试,用MySQL代码建一个数据库。
[root@localhost ~]# docker exec -it mysql1 bash
root@b368477b8670:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.26 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| amo |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> create database tt;
Query OK, 1 row affected (0.43 sec)
在Windows下远程连接也是正常可用的。MySQL8的下载安装地址及教程
三、使用Docker部署Redis数据库
1.先搜索并下拉镜像redis
docker pull redis
2.建立自己的容器
docker run -idt --name redis1 -p 6377:6379 redis
这里用6377映射内部的Redis默认6379端口
3.进入容器中
[root@localhost ~]# docker exec -it redis1 bash
root@2970b297b995:/data# redis-cli
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> hset amo age 18 style handsome
(integer) 2
4.用redis-desktop-manager查看远程连接
对镜像的其他操作参照MySQL部分
四、使用Docker部署MongoDB数据库
1.搜索并下拉mongo
docker pull mongo
2.建立自己的容器,并使用mongo 或 mongosh 登录mongodb
[root@localhost ~]# docker run -itd --name mongo1 -p 27017:27017 mongo
2e599c6d0a23058ef84a28d4b59a68064a19d63d566e9b3c1f3935909ba86a1a
[root@localhost ~]# docker exec -it mongo1 bash
这个是一个没密码的容器
root@2e599c6d0a23:/# mongo
MongoDB shell version v5.0.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("34fb2c20-8287-479a-9921-0670288d8d8f") }
MongoDB server version: 5.0.1
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
We recommend you begin using "mongosh".
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
https://community.mongodb.com
---
The server generated these startup warnings when booting:
2021-07-27T02:44:09.374+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
2021-07-27T02:44:09.374+00:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
---
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> db.runoob.insert({"name":"mao"})
WriteResult({ "nInserted" : 1 })
远程连接
3.再做一个有密码的
[root@localhost ~]# docker run -itd --name mongo2 -p 27018:27017 mongo --auth
96cbe1fdb9047fac07d703771234f9caf65f48cdf854bf1e5a08603569b15926
admin 权限登陆,并在数据库中设定用户和密码
[root@localhost ~]# docker exec -it mongo2 mongo admin
MongoDB shell version v5.0.1
connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("17e4c9cb-b5ac-4739-9a82-e54d50974d2e") }
MongoDB server version: 5.0.1
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
We recommend you begin using "mongosh".
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
> db.createUser({ user:'amo',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]})
Successfully added user: {
"user" : "amo",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
"readWriteAnyDatabase"
]
}
查看远程 连接
mongodb和远程连接工具在Windows下的安装,请参考MongoDB安装。
五、结束语
这里对Centos8下Docker内的MySQL、Redis和MongoDB进行了简单介绍,实现我目前需要python开发环境配置的基本功能,连接起来很方便,远程连接更不用这设置那设置的,希望对大家有帮助。
还有就是如果遇到centos开机进入了命令行模式,可以startx进入图形界面。然后原有的python3不要乱卸载,会回不去图形界面,并卡在那里。。。