docker拉取镜像的命令为

docker pull image[:TAG]

如果我们想安装的mysql版本不是最新的版本,则需要填充TAG,如果不带上TAG,则默认安装的为最新版本,虽然可以通过docker search查询相关的镜像信息,但该命令不会显示其TAG,我们可以通过docker hub官网来获取到docker中镜像的TAG,如查询mysql的TAG

1、登录docker hub网站https://hub.docker.com/,并搜索mysql,得到mysql相关的Containers

2、点击右侧查询出的mysql container(https://hub.docker.com/_/mysql?tab=tags),并选择TAGS标签,即可看到mysql相关的TAG

这里我们安装的是8.0.17的mysql

一、拉取镜像(如果使用docker run命令,可以忽略该步,docker run在不存在镜像的情况下,会自动拉取镜像,并且启动该镜像对应的容器,如果已经存在镜像,则直接启动镜像对应容器)

docker pull mysql:8.0.

二、启动mysql容器,其中--name为指定容器名称,-p暴露内部容器端口给宿主机,前一个端口为宿主机端口, -e为设置环境变量,-d为后台运行,mysql:8.0.17为镜像名称,这个表示我们要启动的镜像,如果不存在,则会下载一个8.0.17的镜像。如果已经拉取了镜像,也可以将mysql:8.0.17

替换成docker images查询出的IMAGE ID

docker run --name mysql_test -p : -e MYSQL_ROOT_PASSWORD= -d mysql:8.0.

三、查看容器运行状态

docker ps

四、进入l容器,退出容器可以使用exit。其中也可以使用NAMES列对应mysql_test代替CONTAINER ID,下同

docker exec -it a77ede15e664 bash

五、连接容器中mysql。若宿主机安装了mysql客户端,则可以通过mysql -uroot -p -h 127.0.0.1连接,注意,必须要添加上-h,因为宿主机连接mysql容器需要通过tcp,而宿主机连接宿主机本地的mysql则不需要,使用socket就可以连接。如果宿主机未安装mysql客户端,则可通过如下命令连接mysql容器中mysql server

docker exec -it a77ede15e664 bash -c "mysql -uroot -p"

六、停止容器。通过docker ps查看已经不存在运行中的容器了

docker stop a77ede15e664

七、查看所有容器。可以看到上一步骤停止mysql容器后,mysql处于Exited状态

docker ps -a

八、启动一个停止的容器

docker start a77ede15e664

九、查看某个容器的具体信息

docker inspect a77ede15e664

十、查看当前宿主机已存在镜像

docker images

十一、删除容器。删除前先停止容器,否则将会出现如下错误,-f为强制停止,最好不要使用。按照正常操作先停止再删除

[root@localhost ~]# docker rm a77ede15e664
Error response from daemon: You cannot remove a running container a77ede15e6644527b4e55b8660347f23a331a75bab03511aea1f7c10761ef807. Stop the container before attempting removal or use -f
[root@localhost ~]#

十二、删除镜像。删除镜像前可以通过docker images查询当前镜像的信息,并根据IMAGE ID删除,删除镜像时需要保证该镜像没有容器在使用,否则会出现如下错误

[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql 8.0. 2151acc12881 weeks ago MB
[root@localhost ~]# docker rmi 2151acc12881
Error response from daemon: conflict: unable to delete 2151acc12881 (cannot be forced) - image is being used by running container a77ede15e664
[root@localhost ~]#

十三、拷贝文件。如下示例为在宿主机新建一个test文件,并填充内容,将该文件拷贝到mysql容器/下,进入到容器,并查看拷贝的文件内容(MySQ配置文件在容器中的位置为/etc/mysql/my.cnf)

[root@localhost ~]# echo "it is a test" >> test
[root@localhost ~]# docker cp test a77ede15e664:/
[root@localhost ~]# docker exec -it a77ede15e664 bash
root@a77ede15e664:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys test tmp usr var
root@a77ede15e664:/# cat test
it is a test
root@a77ede15e664:/#

十四、查看容器相关日志

docker logs a77ede15e664

mysql在docker中安装也可以参照mysql官方文档

https://dev.mysql.com/doc/refman/5.7/en/docker-mysql-getting-started.html

另外,在启动mysql时,如果不确定mysql启动可配置的启动环境参数是那些,可以先通过docker ps --no-trunc查找到当前容器启动时使用的COMMAND,然后找到其中对应的sh文件,在里面即可查找到可以设置的环境变量

如mysql使用command

find / -name docker-entrypoint.sh查找出该sh文件后,打开,可以找到我们在上面启动mysql时所使用的环境变量MYSQL_ROOT_PASSWORD,通过该脚本,也可以看出,如果我们不希望设置密码,添加环境变量MYSQL_ALLOW_EMPTY_PASSWORD即可

docker mysql容器的安装使用的更多相关文章

  1. docker mysql 容器报too many connections 引发的liunx磁盘扩容操作

    症状每次删除mysql容器重启没两分钟又报标题错 df -h 命令查看各个挂载空间应用情况发现root home var 三个文件目录挂载的空间满了 网上百度了一下liunx磁盘扩容操作,fdisk ...

  2. docker 运行容器,安装Nginx

    ########################################## #运行容器 #安装Nginx #搜索.下载镜像 docker search nginx docker pull n ...

  3. 一次生产环境的docker MySQL故障

    问题 昨天下午本来要去吃下午茶,然后前端小伙伴突然说接口怎么崩了,我登上sentry一看,报错了 (2005, "Unknown MySQL server host 'mysql' (-3) ...

  4. MySQL安装+Navicat_Premium(安装+破解)+Navicat_Premium中MySQL的localhost不能正常连接+不能连接Docker启动容器中的MySQL

    MySQL安装 安装MySQL 我这里安装的是 MySQL 8.0 Command Line Client 下载+安装 详情见 https://www.cnblogs.com/taopanfeng/p ...

  5. docker 安装tomcat容器和mysql容器

    1. docker pull mysql:5.6 2.docker run -p 3306:3306 --name mysql -v /data/mysql/conf:/etc/mysql/conf. ...

  6. Linux(Manjaro) - Docker - MySQL 安装配置

    Linux(Manjaro) - Docker - MySQL 安装配置 拉取mysql镜像 # 使用网易的 MySQL 镜像地址 docker pull hub.c.163.com/library/ ...

  7. docker + mysql安装sonarqube

    docker sonarqube地址:https://hub.docker.com/_/sonarqube docker mysql地址:https://hub.docker.com/_/mysql ...

  8. SpringBoot Docker Mysql安装,Docker安装Mysql

    SpringBoot Docker Mysql安装,Docker安装Mysql ================================ ©Copyright 蕃薯耀 2018年4月8日 ht ...

  9. Docker搭建Mysql容器

    转载自:http://blog.csdn.net/Mungo/article/details/78521832?locationNum=9&fps=1 本文介绍如何使用docker迅速搭建My ...

随机推荐

  1. Linux学习(三)-Vi和Vim的区别

    它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面.vim的这些优势主要体现在以下几个方面:1.多级撤消我们知道在vi里,按 u只能撤消上次命 ...

  2. docker 第五篇 存储

    镜像概述复习 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层 如果运行中的容器修改了现有的一个已经存在的文件,那改文件将会从读写层下面的只读 ...

  3. vsCode设置代码片段

    输入vue.json { "Print to console": { "prefix": "vv", "body": [ ...

  4. react route使用HashRouter和BrowserRouter的区别-Content Security Policy img-src 404(Not found)

    踩坑经历 昨天看了篇关于react-route的文章,说BrowserRouter比HashRouter好一些,react也是推荐使用BrowserRouter,毕竟自己在前端方面来说,就是个小白,别 ...

  5. mORMot学习笔记 (一)

    官方网站:https://synopse.info/fossil/wiki/Synopse+OpenSource 下载地址:https://synopse.info/fossil/wiki?name= ...

  6. web应用原理之——会话

    会话是大家开发Java EE Web应用的常用技术,那么会话是什么,会话的用途还有工作原理又是什么,下面就简单说一说. 什么是会话,在web应用中,作为客户端的浏览器,通过请求/响应这种模式访问同一个 ...

  7. pip install win32api报错解决方法

    在安装pywinauto模块,导入模块后,提示缺少:win32api 但是在使用pip install安装win32api后,居然报错 错误信息如下: Could not find a version ...

  8. 002.MVC开发方法和步骤--用一个简单的加法程序来演示

    MVC的工作原理: 注:ASP.NET MVC中的url 特殊:构成 http//....../控制器名/方法名 默认: 1.Url请求直接来到Controller中 2.Controller从Mod ...

  9. (2)python开发环境搭建

    电脑配置:推荐i7以上处理器,8g内存就ok了,python对电脑还是稍微有点要求的 当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要 ...

  10. java——从.net再学习java

    到底从java中学到了什么? 1,java是由sun公司发明的,sun希望制定一些标准,具体的实现交给具体的厂商来自己实现: 2,java是开源的,第三方做了很多自己的一些组件实现,比如: 很多时候, ...