docker部署mysql

服务器是centos7,因为yum不是最新的docker源所以需要更新源地址

yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager  --add-repo --添加依赖源
https://download.docker.com/linux/centos/docker-ce.repo

安装docker

yum-config-manager  --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-nightly
yum-config-manager --enable docker-ce-test
yum-config-manager --disable docker-ce-nightly
yum install docker-ce docker-ce-cli containerd.io

失败可以设置阿里云镜像

cat >>/etc/yum.repos.d/docker.repo<<EOF
[docker-ce-edge]
name=Docker CE Edge - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/edge
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF

查看是否安装成功

[root@mini ~]# docker -v
Docker version 19.03.8, build afacb8b

查找mysql

[root@mini ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   9440                [OK]                
mariadb                           MariaDB is a community-developed fork of MyS…   3401                [OK]                
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   691                                     [OK]
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   75                                      
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   67                                      
centurylink/mysql                 Image containing mysql. Optimized to be link…   61                                      [OK]
deitch/mysql-backup               REPLACED! Please use http://hub.docker.com/r…   41                                      [OK]
bitnami/mysql                     Bitnami MySQL Docker Image                      39                                      [OK]
tutum/mysql                       Base docker image to run a MySQL database se…   34                                      
schickling/mysql-backup-s3        Backup MySQL to S3 (supports periodic backup…   29                                      [OK]
prom/mysqld-exporter                                                              27                                      [OK]
linuxserver/mysql                 A Mysql container, brought to you by LinuxSe…   25                                      
centos/mysql-56-centos7           MySQL 5.6 SQL database server                   19                                      
circleci/mysql                    MySQL is a widely used, open-source relation…   19                                      
databack/mysql-backup             Back up mysql databases to... anywhere!         17                                      
mysql/mysql-router                MySQL Router provides transparent routing be…   15                                      
arey/mysql-client                 Run a MySQL client from a docker container      14                                      [OK]
openshift/mysql-55-centos7        DEPRECATED: A Centos7 based MySQL v5.5 image…   6                                       
fradelg/mysql-cron-backup         MySQL/MariaDB database backup using cron tas…   6                                       [OK]
genschsa/mysql-employees          MySQL Employee Sample Database                  5                                       [OK]
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…   1                                       
widdpim/mysql-client              Dockerized MySQL Client (5.7) including Curl…   0                                       [OK]
monasca/mysql-init                A minimal decoupled init container for mysql    0                                       

直接选择第一个或者第二个都可以

docker pull mysql

运行

docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306  mysql

连接进入mysql

mysql -h 127.0.0.1 -u root -p 
Enter password: 
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: 
/usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: 
No such file or directory

出现上述错误主要因为密码加密不一样,解析错误,需要进入mysql内部修改密码

docker exec -it  8f265a91d27c  /bin/bash
root@8f265a91d27c:/# mysql -h 127.0.0.1 -u root -p 

查看信息

select host,user,plugin,authentication_string from mysql.user;
mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host      | user             | plugin                | authentication_string                                                  |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| %         | root             | caching_sha2_password | $A$005$fa[!E}6[YCNBmDujd1CsqF.wjiaqkfgE96QDHORhA9xnq4KCi.F15P7N96/ |
| localhost | mysql.infoschema | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE                              |
| localhost | mysql.session    | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE                              |
| localhost | mysql.sys        | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE                              |
| localhost | root             | caching_sha2_password | $A$005$hmWiN:3vHe*7#XW5VdLebKWFz0wXcgejQLkzRKCvhD2Y05BXGAlB4co9B |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
备注:host为 % 表示不限制ip  localhost表示本机使用    plugin非mysql_native_password 则需要修改密码

修改密码任意并刷新

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql';
更新user为root,host为% 的密码为123456

查询配置信息,字符编码
SHOW VARIABLES WHERE VALUE LIKE '%/%'
SHOW VARIABLES LIKE '%char%'
配置引擎信息
SHOW ENGINES;

此时重新连接就可以了

附录,docker运行可能遇到的错误

常见docker错误
1,Docker报错 WARNING: IPv4 forwarding is disabled. Networking will not work.
    vim  /usr/lib/sysctl.d/00-system.conf
    添加如下代码:
    net.ipv4.ip_forward=1
    重启network服务
    systemctl restart network
2,Docker:删除images报错(Error response from daemon: conflict: unable to remove repository reference)
    Docker无法删除images,由于是依赖container。 
    1.进入root权限
    sudo su
    2.停止所有的container,这样才能够删除其中的images:
        docker stop $(docker ps -a -q)
    如果想要删除所有container的话再加一个指令:
        docker rm $(docker ps -a -q)
    3.查看当前有些什么images
        docker images
    4.删除images,通过image的id来指定删除谁
        docker rmi
    想要删除untagged images,也就是那些id为的image的话可以用
    docker rmi  $(docker images | grep "^<none>" | awk "{print $3}")
    要删除全部image的话
        docker rmi $(docker images -q)

*******************************************************************************************************************************

感谢阿贝云提供的免费云服务器和免费虚拟主机,1C1G5M配置,搭配内网穿透,真香,看视频听歌曲无压力,*

运行起来也相当流畅,网速个人使用是真的赞,欢迎大家使用

*******************************************************************************************************************************

原文地址:https://www.cnblogs.com/zqq1234/p/12815584.html