deepin15.10.1桌面版安装docker及mysql5.7和数据持久化

deepin官方百科教程地址:https://wiki.deepin.org/wiki/Docker

官方教程有些坑我备注了一下

  • 如果以前安装过老版本,要确保先卸载以前版本

sudo apt-get remove docker.io docker-engine

  • 安装密钥管理与下载相关的工具

 // 密钥管理(add-apt-repository ca-certificates 等)与下载(curl 等)相关的工具
 //可能会报错
sudo apt-get install apt-transport-https ca-certificates curl python-software-properties software-properties-common

注意:这句命令会报错,用下面这句就没有问题

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
  • 下载并安装密钥

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。

国内源可选用清华大学开源软件镜像站中科大开源镜像站,示例选用了中科大的。

为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
// 官方源,能否成功可能需要看运气。
// curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  • 查看密钥是否安装成功

sudo apt-key fingerprint 0EBFCD88

如果安装成功,会出现如下内容:

  pub   4096R/0EBFCD88 2017-02-22              Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88  
  uid     Docker Release (CE deb) <docker@docker.com>  
  sub   4096R/F273FCD8 2017-02-22
  • 在 source.list 中添加 docker-ce 软件源(请先查看后面的 Note):

     注:我没成功过。。。总是报错提示找不到对应版本,然后我就继续执行后面的命令,最后也成功了貌似没有影响。等发现了再来更新吧

sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian wheezy stable"
// 官方源
// sudo add-apt-repository  "deb [arch=amd64] https://download.docker.com/linux/debian wheezy stable"

// 15.10 会提示  aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Deepin/stable
// 这里我们通过编辑 sudo vim /etc/apt/sources.list 添加一行即可,原因未知
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian stretch stable"

Note: 官方在 wheezy 位置使用的是 $(lsb_release -cs),但之前已经解释过,在 deepin 里运行它得到的是 unstable,docker 官方不支持 unstable 版本!因此直接使用官方教程的命令会安装失败。

更改方法:将上述命令中的版本名称 wheezy,替换成 deepin 基于的 debian 版本对应的代号。查看版本号的命令为:cat /etc/debian_version.

举例:

a). 对于 deepin 15.5,我操作上面的命令得到 debain 版本是 8.0,debian 8.0 的代号是 jessie,把上面的 wheezy 替换成 jessie,就可以正常安装 docker 了。

b). deepin 15.9.2 基于 debian 9.0 , debian 9.0 的代号为 stretch, 所以 deepin 15.9.2 上完整的添加信息为:

sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian stretch stable"
  • 更新仓库

sudo apt-get update

  • 安装 docker-ce

由于网络不稳定,可能会下载失败。如果下载失败了,可以多试几次或者找个合适的时间继续。

sudo apt-get install docker-ce

在安装完后启动报错,查看 docker.service 的 unit 文件,路径为 /lib/systemd/system/docker.service,把 ExecStart=/usr/bin/dockerd -H fd:// 修改为 ExecStart=/usr/bin/dockerd,就能正常启动 docker 了

Note:经测试,在 Deepin15.9 中已不需要做修改可直接启动 docker-ce

  • 启动 docker:

systemctl start docker

  • 查看安装的版本信息

docker version

  • 更换国内的 docker 加速器

如果使用 docker 官方仓库,速度会很慢,所以更换国内加速器就不可避免了。

方式一:使用阿里云的docker加速器。

在阿里云申请一个账号

打开连接 https://cr.console.aliyun.com/#/accelerator 拷贝您的专属加速器地址。

修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器(下面是4个命令,分别单独执行)

Note: 这里的 https://jxus37ad.mirror.aliyuncs.com 是申请者的加速器地址,在此仅仅用于演示,而使用者要个根据自己的使用的情况填写自己申请的加速器地址。

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://jxus37ad.mirror.aliyuncs.com"]
}

重启 docker 服务
sudo service docker restart
  • 在docker上安装mysql5.7

查找mysql镜像

 

[root@centos-linux-pure ~]# docker search mysql
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                                                  MySQL is a widely used, open-source relation  6150                [OK]                
mariadb                                                MariaDB is a community-developed fork of MyS  1928                [OK]                
mysql/mysql-server                                     Optimized MySQL Server Docker images. Create  442                                     [OK]
percona                                                Percona Server is a fork of the MySQL relati  339                 [OK]                
zabbix/zabbix-server-mysql                             Zabbix Server with MySQL database support       96                                      [OK]
hypriot/rpi-mysql                                      RPi-compatible Docker Image with Mysql          83                                      
centurylink/mysql                                      Image containing mysql. Optimized to be link  59                                      [OK]
zabbix/zabbix-web-nginx-mysql                          Zabbix frontend based on Nginx web-server wi  50                                      [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5   ubuntu-16-nginx-php-phpmyadmin-mysql-5          34                                      [OK]
tutum/mysql                                            Base docker image to run a MySQL database se  32                                      
centos/mysql-57-centos7                                MySQL 5.7 SQL database server                   27                                      
mysql/mysql-cluster                                    Experimental MySQL Cluster Docker images. Cr  23                                      
schickling/mysql-backup-s3                             Backup MySQL to S3 (supports periodic backup  18                                      [OK]
bitnami/mysql                                          Bitnami MySQL Docker Image                      15                                      [OK]
linuxserver/mysql                                      A Mysql container, brought to you by LinuxSe  14                                      
zabbix/zabbix-proxy-mysql                              Zabbix proxy with MySQL database support        12                                      [OK]
centos/mysql-56-centos7                                MySQL 5.6 SQL database server                   8                                       
openshift/mysql-55-centos7                             DEPRECATED: A Centos7 based MySQL v5.5 image  6                                       
circleci/mysql                                         MySQL is a widely used, open-source relation  5                                       
dsteinkopf/backup-all-mysql                            backup all DBs in a mysql server                3                                       [OK]
frodenas/mysql                                         A Docker Image for MySQL                        2                                       [OK]
ansibleplaybookbundle/mysql-apb                        An APB which deploys RHSCL MySQL                0                                       [OK]
openzipkin/zipkin-mysql                                Mirror of https://quay.io/repository/openzip  0                                       
cloudposse/mysql                                       Improved `mysql` service with support for `m  0                                       [OK]
cloudfoundry/cf-mysql-ci                               Image used in CI of cf-mysql-release            0                                 

 

 

这里我们拉取官方的镜像,标签为5.7

[root@centos-linux-pure docker]# docker pull mysql:5.7
5.7: Pulling from library/mysql
f2aa67a397c4: Pull complete 
1accf44cb7e0: Pull complete 
2d830ea9fa68: Pull complete 
740584693b89: Pull complete 
4d620357ec48: Pull complete 
ac3b7158d73d: Pull complete 
a48d784ee503: Pull complete 
bf1194add2f3: Pull complete 
0e5c74178a02: Pull complete 
e9201d309436: Pull complete 
bf1ac4524e8e: Pull complete 
Digest: sha256:f030e84582d939d313fe2ef469b5c65ffd0f7dff3b4b98e6ec9ae2dccd83dcdf
Status: Downloaded newer image for mysql:5.7

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为mysql,标签为5.7的镜像。

 

使用mysql镜像

运行容器

docker run -p 3306:3306 --name mysql1 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1

命令说明:

  • -p 3306:3306:将容器的3306端口映射到主机的3306端口

  • -v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf

  • -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs

  • -v $PWD/data:/var/lib/mysql:实现持久化。将主机当前目录下的data目录挂载到容器的/var/lib/mysql(绑定数据卷,格式:“宿主机路径:容器路径”)

          (注:$PWD代表当前目录,) 

  • -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

  • --lower_case_table_names=1: 表名忽略大小写

 

 

 

 

查看容器启动情况

[root@centos-linux-pure mysql]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
29435450d425        mysql:5.7           "docker-entrypoint.sΒ   13 seconds ago      Up 4 seconds        0.0.0.0:3306->3306/tcp   mymysql

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值