第一次把mysql装进docker里碰到的各类问题

最近电脑常常关机要关好长时间,总是须要长按电源键强行关机。也不知道是怎么回事。html

后来查看关机时的日志,发现是mysql停不掉。这可闹心了!怎么办?上网搜了搜也没有找到什么好的解决办法。总不能每次关机都要长按电源键吧?电脑那么贵,何况仍是我本身的电脑,坏了怎么办?mysql

 

把mysql删掉?做为一个写代码的,电脑里也不能不装mysql啊,每天要用的!装在虚拟机里?这个彷佛可行,管你mysql能不能关掉,我把虚拟机停了就行啊。而后看了看本身电脑上装了1年多都没打开过的virtualbox,寻思着装在这里也不合适啊。我电脑硬盘就250G,就为了装个mysql还要给它分个十几G的硬盘,再分给它2G的内存,不合适不合适。那咋弄呢?扣了扣个人鼠标,想起来前1年跟风研究的docker,嗯~,就你了。sql

开始吧mysql安装进docker

安装docker

docker的命令我是记不住啦~,上网搜了搜安装命令,仍是很简单吗。命令一敲刷刷的就行了。(个人电脑装的deepin系统)docker

wget -qO- https://get.docker.com/ | sh

而后须要给它启动起来,也是一条命令就好啦~json

 sudo service docker start

docker运行Ubuntu

docker是安装好了,里面怎样跑一个系统呢?只有docker也无法运行mysql呀!这时候须要下载一个系统镜像,这里用Ubuntu的镜像。首先须要搜索一下有什么镜像能够用下面的命令在市场中搜索镜像。ubuntu

//命令 
sudo docker search ubuntu
//结果
NAME                                                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                    Ubuntu is a Debian-based Linux operating sys…   9583                [OK]                
dorowu/ubuntu-desktop-lxde-vnc                            Docker image to provide HTML5 VNC interface …   304                                     [OK]
rastasheep/ubuntu-sshd                                    Dockerized SSH service, built on top of offi…   217                                     [OK]
consol/ubuntu-xfce-vnc                                    Ubuntu container with "headless" VNC session…   179                                     [OK]
ubuntu-upstart                                            Upstart is an event-based replacement for th…   98                  [OK]                
ansible/ubuntu14.04-ansible                               Ubuntu 14.04 LTS with ansible                   97                                      [OK]

这里搜到了一堆镜像,咱们选排名第一的那个吧。bash

如今须要把这个镜像下载下来,用下面的命令:session

sudo docker pull ubuntu:18.04
//冒号后面的是版本号,不知道的话只能上网查了,不写的话下载的是最新的

可是。网上说因为一些不可抗力,致使国内下载镜像很慢,因此须要添加一个镜像。须要在 /etc/docker 的路径下添加一个文件:daemon.json,里面是镜像地址:less

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

以后重启。而后执行上面下载镜像的命令,而后喝点咖啡等一会~~~。ssh

通过下载以后,咱们看一下如今电脑里有那些镜像,使用下面的命令:

sudo docker images 
//结果
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              18.04               7698f282e524        2 weeks ago         69.9MB  

这里能够看到已经有一个Ubuntu版本是18.04的镜像。如今咱们须要启动这个镜像。

//命令
sudo docker run -it -d ubuntu:18.04 /bin/bash
//解释
run            : 建立一个新的容器并运行一个命令
-it            : 以交互模式运行容器,并从新分配一个伪输入终端,表明-i -t
--name ubuntu18: 为容器指定一个名称
-d             : 后台运行容器
ubuntu:18.04   : 镜像名称
/bin/bash      : 运行镜像中的程序,没有的话镜像会直接停掉

如今镜像是启动成功了,可是我还要登进去才行呀。这时候须要查看如今有那些容器在运行,执行:

//命令
sudo docker ps -a
//解释
ps   : 列出容器
-a   : 显示全部的容器,包括未运行的

//结果
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
1ce6fa95862c        ubuntu:18.04        "/bin/bash"              6 minutes ago       Up 6 minutes                                            brave_mendeleev

这里咱们能够看到有一个NAME是brave_mendeleev的容器在运行之中。如今咱们进入这个容器。执行下面的命令

//命令
sudo docker exec -it brave_mendeleev /bin/bash
//解释
brave_mendeleev: 容器名称 
exec           : 在运行的容器中执行命令

//结果
hjx@hjx-PC:/etc/docker$ sudo docker exec -it brave_mendeleev /bin/bash
root@1ce6fa95862c:/#

这样咱们就成功的登陆到这个镜像为ubuntu18.04版本的容器里面了。如今咱们就能够在里面安装mysql啦~

ubuntu容器中安装mysql

安装mysql我本身喜欢直接用 apt安装。我在这里直接输入:

apt install mysql-server-5.7

后发如今容器中也是能够安装成功的。安装成功后,咱们须要将容器中的mysql端口绑定到本身主机的3306端口上。这里的步骤是:

1:停掉容器(不停掉也行)

//中止容器
sudo docker stop brave_mendeleev
//解释
stop : 容器生命周期管理命令,一共有下面命令构成:
      start   : 启动容器
      stop    : 中止容器
      restart : 重启容器

2:将安装好mysql的容器提交为一个新的镜像

//命令
sudo docker commit brave_mendeleev ub/mysql
//解释
commit    : 从容器建立一个新的镜像
ub/mysql  : 新的镜像名称

3:并绑定端口并启动新的镜像

额。。。这里玩崩了。。。没有弄成。/(ㄒoㄒ)/~~
我决定在启动ubuntu镜像的时候就绑定一下3306端口,而后在从新执行上面的操做。

通过漫长的操做。在删除了原有容器,从新绑定3306端口启动,登陆容器,安装mysql后,完美的安装并运行成功。 

更简单的方法

恩,直接搜索镜像mysql,而后启动就行了😂😂😂

//下载mysql5.7镜像

sudo docker pull mysql:5.7

//绑定3306端口启动
sudo docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
//解释
-e MYSQL_ROOT_PASSWORD=123456 : 初始化 root 用户的密码,

以后还有其余的一堆参数,这里我用不到,就不写啦

拜拜~~

地址:http://www.javashuo.com/article/p-xwjqiaue-bd.html

相关文章
相关标签/搜索