1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > docker入门实践 安装指定版本的mysql镜像

docker入门实践 安装指定版本的mysql镜像

时间:2023-03-14 15:49:55

相关推荐

docker入门实践 安装指定版本的mysql镜像

本文以安装mysql5.7为例

查找镜像仓库

含有mysql关键字的记录,这里选择了stars最高,即第1条

$ docker search mysqlNAME DESCRIPTION STARSOFFICIAL AUTOMATEDmysqlMySQL is a widely used, open-source relation… 8147[OK]mariadb MariaDB is a community-developed fork of MyS… 2775[OK]mysql/mysql-server Optimized MySQL Server Docker images. Create… 607 [OK]zabbix/zabbix-server-mysql Zabbix Server with MySQL database support 192 [OK]hypriot/rpi-mysql RPi-compatible Docker Image with Mysql113zabbix/zabbix-web-nginx-mysqlZabbix frontend based on Nginx web-server wi… 101 [OK]centurylink/mysql Image containing mysql. Optimized to be link… 60 [OK]centos/mysql-57-centos7 MySQL 5.7 SQL database server 531and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-550 [OK]mysql/mysql-clusterExperimental MySQL Cluster Docker images. Cr… 44tutum/mysql Base docker image to run a MySQL database se… 32zabbix/zabbix-web-apache-mysqlZabbix frontend based on Apache web-server w… 29 [OK]schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 27 [OK]bitnami/mysql Bitnami MySQL Docker Image 26 [OK]zabbix/zabbix-proxy-mysqlZabbix proxy with MySQL database support 22 [OK]linuxserver/mysql A Mysql container, brought to you by LinuxSe… 20centos/mysql-56-centos7 MySQL 5.6 SQL database server 13mysql/mysql-router MySQL Router provides transparent routing be… 11circleci/mysql MySQL is a widely used, open-source relation… 11openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6dsteinkopf/backup-all-mysql backup all DBs in a mysql server6 [OK]jelastic/mysql An image of the MySQL database server mainta… 1cloudposse/mysql Improved `mysql` service with support for `m… 0 [OK]widdpim/mysql-clientDockerized MySQL Client (5.7) including Curl… 0 [OK]ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL0 [OK]

还需要进一步查看mysql镜像有哪些版本

$ docker-tags mysqlIMAGE [mysql:]:mysql:latestmysql:5mysql:5.5.40mysql:5.5.41mysql:5.5.42mysql:5.5.43mysql:5.5.44mysql:5.5.45mysql:5.5.46mysql:5.5.47mysql:5.5.48mysql:5.5.49mysql:5.5.50mysql:5.5.51mysql:5.5.52mysql:5.5.53mysql:5.5.54mysql:5.5.55mysql:5.5.56mysql:5.5.57mysql:5.5.58mysql:5.5.59mysql:5.5.60mysql:5.5.61mysql:5.5.62mysql:5.6mysql:5.6.17mysql:5.6.20mysql:5.6.21mysql:5.6.22mysql:5.6.23mysql:5.6.24mysql:5.6.25mysql:5.6.26mysql:5.6.27mysql:5.6.28mysql:5.6.29mysql:5.6.30mysql:5.6.31mysql:5.6.32mysql:5.6.33mysql:5.6.34mysql:5.6.35mysql:5.6.36mysql:5.6.37mysql:5.6.38mysql:5.6.39mysql:5.6.40mysql:5.6.41mysql:5.6.42mysql:5.6.43mysql:5.6.44mysql:5.7mysql:5.7.10mysql:5.7.11mysql:5.7.12mysql:5.7.13mysql:5.7.14mysql:5.7.15mysql:5.7.16mysql:5.7.17mysql:5.7.18mysql:5.7.19mysql:5.7.20mysql:5.7.21mysql:5.7.22mysql:5.7.23mysql:5.7.24mysql:5.7.25mysql:5.7.26mysql:5.7.4mysql:5.7.4-m14mysql:5.7.5mysql:5.7.5-m15mysql:5.7.6mysql:5.7.6-m16mysql:5.7.7mysql:5.7.7-rcmysql:5.7.8mysql:5.7.8-rcmysql:5.7.9mysql:8mysql:8.0mysql:8.0.0mysql:8.0.1mysql:8.0.11mysql:8.0.12mysql:8.0.13mysql:8.0.14mysql:8.0.15mysql:8.0.16mysql:8.0.2mysql:8.0.3mysql:8.0.4mysql:8.0.4-rc

备注:这里的docker-tags是自己写的脚本,附脚本内容:

#!/bin/bashAPI="https://registry./v1/repositories"DEFAULT_NAME="nginx"DEFAULT_TIMEOUT=3function Usage(){cat << HELPUsage: docker-tags NAME[:TAG]docker-tags list all tags for docker image on a remote registry.Example:docker-tags (default nginx)docker-tags nginxdocker-tags nginx:1.15.8docker search nginx | docker-tagsdocker search nginx | docker-tags :1.15.8echo nginx | docker-tagsecho nginx | docker-tags :1.15.8HELP}ARG=$1if [[ "$ARG" =~ "-h" ]];thenUsageexit 0fifunction ParseJson(){tr -d '[\[\]" ]' | tr '}' '\n' | awk -F: -v image=$1 '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'}function GetTags(){image=$1tag=$2ret=`curl -s ${API}/${image}/tags`tag_list=`echo $ret | ParseJson ${image}`if [ -z "$tag" ];thenecho -e "$tag_list"elseecho -e "$tag_list" | grep -w "$tag"fi}if [ -z $ARG ] || [[ ${ARG:0:1} == ":" ]];thenif [ -x /usr/bin/timeout ];thenimages=`timeout $DEFAULT_TIMEOUT` awk '{print $1}' | grep -v "NAME" || echo $DEFAULT_NAMEelseimages=`awk '{print $1}' | grep -v "NAME"`fielseimages=`echo $ARG | awk -F: '{print $1}'`fitag=`echo $ARG | awk -F: '{print $2}'`for i in ${images}dotags=`GetTags $i $tag`count=`echo $tags | wc -w`if [[ $count -gt 0 ]];thenecho -e "IMAGE [$i:$tag]:"echo -e "$tags"echofidone

另外如果不使用命令的方式查看tag的话也可以打开浏览器,访问如下网址/_/mysql?tab=tags进行获取

安装自己需要的版本

docker pull mysql:5.7docker run -p 3317:3306 --name mysql57 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7说明:-p 3316:3306 是把容器的3306端口映射到本机的3316端口–name 是给运行的容器一个别名-e MYSQL_ROOT_PASSWORD=123456 是初始化 MySQL 的密码

#测试

mysql -h127.0.0.1 -P 3317 -uroot -p123456

目前还不能成功执行,需要进入容器设置权限

docker exec -it mysql57 bash

进入容器后执行

# mysql -uroot -p123456mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 3Server version: 5.7.26 MySQL Community Server (GPL)Copyright (c) 2000, , Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>mysql>update mysql.user set host="%" where user="root";mysql> flush privileges;

OK,这样我们退出容器,在宿主机上执行mysql -h127.0.0.1 -P 3317 -uroot -p123456就没有问题了。

附mysql安装完毕后通常需要建库建用户,一并提供了

CREATE DATABASE dnscheater ;CREATE USER 'test'@'%' IDENTIFIED BY '123456';GRANT ALL PRIVILEGES ON dnscheater.* to 'test'@'%';

进阶待续

挂载外部配置和数据目录

参考文章:

/u014542256/article/details/84327903

/woniu211111/article/details/80968154

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。