2021-07-27 部署个Docker环境并添加自己用的数据库

目录

   ​一、安装docker

1.删除旧版本(不一定要做,我就没做这步)

2.安装yum-utils包并设置存储库

3.安装 Docker 引擎 

4.启动Docker

5.创建docker组并添加用户

6.设置开机启动

7.卸载

二、使用Docker部署MySQL数据库

1.先查找mysql,可以看到很多。

2.选择第一个,将镜像拉下来,就键入命令

3.接着创建自己的镜像容器

4.在Windows下 用MySQL Workbench访问

5.后续再启动 这个镜像容器

6.进入容器,并测试,用MySQL代码建一个数据库。

 三、使用Docker部署Redis数据库

1.先搜索并下拉镜像redis

2.建立自己的容器

3.进入容器中

4.用redis-desktop-manager查看远程连接

          四、使用Docker部署MongoDB数据库

1.搜索并下拉mongo

2.建立自己的容器,并使用mongo 或 mongosh 登录mongodb

3.再做一个有密码的 


        最近配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不要乱卸载,会回不去图形界面,并卡在那里。。。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Amoor123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值