首页 > 编程知识 正文

docker镜像单独下载,docker下载的镜像怎么更新

时间:2023-05-06 01:39:36 阅读:146430 作者:4941

另一方面,下载官方的mysql镜像,我使用的https://dashboard.Dao cloud.io/orgs/zui KC/packages/explore国内加速镜像,一般国外比较慢

用终端登录到docker login daocloud.io2 .输入docker pull复制以下镜像地址&; 粘贴

Dao cloud.io/library/MySQL : latest

下载完成后显示镜像:

二.生成容器

生成容器时调用的启动脚本是/entrypoint.sh; 查看/entrypoint.sh脚本的内容,将参数总结如下

mysqld #要启动mysql服务,必须使用MYSQL_ROOT_PASSWORD #设置mysql的根密码。 #必须使用以下两个参数添加非根用户并设置密码: 可选。 生成MYSQL_USER MYSQL_PASSWORD #容器时必须设置新数据库。 可选MYSQL_DATABASE #容器的mysql数据库的缺省保存路径是: /健忘大叔/lib/mysql #容器的配置文件my.cnf的路径

使用上面所需的参数生成新容器:

docker run-d-p 330733603306---name MySQL-p-e mysqld-e MySQL _ root _ password=123456-e MySQL _ u u u u user=yope-e Db -v /mysql_data:/健忘的大叔/lib/mysqldaocloud.io/library/MySQL

查看容器:

docker ps -a

重要参数说明:

--name mysql

将容器名称指定为mysql;

-p 3307:3306

指定映射端口将宿主机端口3307映射到容器3306端口;

-v /mysql_data:/健忘的大叔/lib/mysql

映射数据库的存储位置。 将宿主机目录“/mysql_data”映射到容器的“/健忘的大叔/lib/mysql”目录; 这是因为缺省情况下,数据库的数据库文件和日志文件都存储在容器的AUFS文件层中。 容器体积庞大,不仅迁移、备份等变得不容易管理,而且数据库性能也会受到影响。 因此,建议将主机目录装载到容器中。

检查本地mysql_data是否生成容器中的数据库。

[ [电子邮件保护]/] # ll/MySQL _ data/总用量188452-rw-r---- 1系统总线- proxy ssh _ keys 568月20日22336025 auto.cn f-rw-r---- 1系统总线- prood pod 336025 ibdata1- rw-r---1 systemd-bus-prox as le0-rw-r---1 systemd-bus-proxy ssh _ keys 503331648月20日233606 md-bus-proxyssh_keys40968月20日22336025 mysqldrwxr-x---2系统总线- proxy ssh _ keys 81928 wxr---- 2系统

已生成相关文件和缺省数据库,还创建了新的“testDb”数据库。

测试方案1 :

在主机上通过端口访问容器中的mysql服务

[ root @ localhost/] # yum-yinstallmysql

测试登录:

MySQL-uroot-p 123456-h 127.0.0.1-p 3306

enter password : welcometothemariadbmonitor.command send with; org.yourmysqlconnectionidis 2服务器版本:5.7.13 mysqlcommunityserver

(GPL) Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type ‘help;‘ or ‘h‘ for help. Type ‘c‘ to clear the current input statement. MySQL [(none)]>

测试方案二:

自己本地利用mysql 连接工具(eg:Navicat 等)进行连接,注意映射出来的真实端口不一定是3306就好了。

需要注意的是:宿主机上的UID和GID是999。这是容器里用户mysql的UID和GID。千万别进行权限变更,否则容器对这个目录进行读写就会出现问题。如果觉得不舒服,可以在本地新建一个mysql_docker的用户指定UID和GID是999。

(这个注意本人没有落实验证,如果描写信息有错,还望指出)

三、进入到新生成的容器 (名为mysql的容器)

使用exec进入容器,同时进行相关操作:

[root@localhost /]# docker exec -it mysql /rqdgz/bash

查看进程:

root@492ffa26d865:/# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND mysql 1 0.2 9.7 1262696 182200 ? Ssl 14:52 0:00 mysqld root 127 0.2 0.1 20216 1884 ? Ss 14:57 0:00 /rqdgz/bash root 133 0.0 0.0 17492 1148 ? R+ 14:58 0:00 ps -aux

查看数据库所在的文件夹:

root@492ffa26d865:/# ls -l /健忘的大叔/lib/mysql/ total 188452 -rw-r----- 1 mysql mysql 56 Aug 20 14:52 auto.cnf -rw-r----- 1 mysql mysql 1329 Aug 20 14:52 ib_buffer_pool -rw-r----- 1 mysql mysql 50331648 Aug 20 14:52 ib_logfile0 -rw-r----- 1 mysql mysql 50331648 Aug 20 14:52 ib_logfile1 -rw-r----- 1 mysql mysql 79691776 Aug 20 14:52 ibdata1 -rw-r----- 1 mysql mysql 12582912 Aug 20 14:52 ibtmp1 drwxr-x--- 2 mysql mysql 4096 Aug 20 14:52 mysql drwxr-x--- 2 mysql mysql 8192 Aug 20 14:52 performance_schema drwxr-x--- 2 mysql mysql 8192 Aug 20 14:52 sys drwxr-x--- 2 mysql mysql 19 Aug 20 14:52 testDb

进入mysql:

root@492ffa26d865:/# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 Server version: 5.7.13 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 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>

四、修改容器中mysql的配置文件

默认镜像中并没有安装vi或者vim,需要手工安装

root@492ffa26d865:/# apt-get update && apt-get -yq install vim

然后就可以使用vim 来修改mysql的配置文件:

root@492ffa26d865:/# vim /etc/mysql/my.cnf

vim编辑器在此不做详述。

如果已经有一个比较成熟的my.cnf的配置方案,可以在宿主机上新建一个文件夹将已经设置好的my.cnf和conf.d这二个文件放到里面,

然后在新建容器的时候,直接使用参数”-v” 将这个文件夹映射到容器的”/etc/mysql”目录上即可。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。