CentOS7使用docker安装Mysql

1.docker的安装
1.1 前提条件

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。 
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

Docker 要求 CentOS 系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本 ,来验证你的CentOS 版本是否支持 Docker 。

[root@centos1 ~]# uname -r

 
 
  • 1
  • 2
1.2 使用yum安装

Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里;

[root@centos1 ~]# yum install docker-engine
 
 
  • 1
1.3 启动docker
[root@centos1 ~]# service docker start
 
 
  • 1
1.4 测试运行 hello-world
[root@centos1 ~]# docker run hello-world
 
 
  • 1
2.docker的常用命令
2.1 从阿里的Docker Hub查找镜像
[root@centos1 ~]# docker search centos
 
 
  • 1

–automated :只列出 automated build类型的镜像; 
–no-trunc :显示完整的镜像描述; 
-s :列出收藏数不小于指定值的镜像。

2.2 拉取镜像 docker pull <镜像名:tag>
[root@centos1 ~]# docker pull mysql:latest
 
 
  • 1

:latest : 表示最新版

2.3 列出本地镜像
[root@centos1 ~]# docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
mysql                            latest              7d83a47ab2d2        4 days ago          408MB
 
 
  • 1
  • 2
  • 3

-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层); 
–digests :显示镜像的摘要信息; 
-f :显示满足条件的镜像; 
–format :指定返回值的模板文件; 
–no-trunc :显示完整的镜像信息; 
-q :只显示镜像ID。

2.4 创建一个新的容器并运行一个命令
[root@centos1 ~]#  sudo docker run --name dbtest -p 3306:3306 -v /data1/var/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root1234 -d mysql:latest sudo docker exec -it dbtest /bin/bash

docker cp dbtest:/etc/mysql/my.cnf /data1/local/my.cnf

docker stop dbtest

docker run -d -p 3306:3306 -v /data/var/mysql/:/var/lib/mysql -v /data1/local/my.cnf:/etc/mysql/my.cnf mysql
  • 1

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; 
-d: 后台运行容器,并返回容器ID; 
-i: 以交互模式运行容器,通常与 -t 同时使用; 
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; 
–name=”nginx-lb”: 为容器指定一个名称; 
–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致; 
–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致; 
-h “mars”: 指定容器的hostname; 
-e username=”ritchie”: 设置环境变量; 
–env-file=[]: 从指定文件读入环境变量; 
–cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行; 
-m :设置容器使用内存最大值; 
–net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型; 
–link=[]: 添加链接到另一个容器; 
–expose=[]: 开放一个端口或一组端口; 
-p 80:80 : 将容器的80端口映射到主机的80端口; 
-P : 将容器的80端口映射到主机随机端口; 
-v /data:/data : 主机的目录/data映射到容器的/data;

2.5 列出容器
[root@centos1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
e1e1f780dcc7        688353a31fde        "/bin/bash"         8 minutes ago       Exited (0) 8 minutes ago                       centos-nginx01
 
 
  • 1
  • 2
  • 3

-a :显示所有的容器,包括未运行的。 
-f :根据条件过滤显示的内容。 
–format :指定返回值的模板文件。 
-l :显示最近创建的容器。 
-n :列出最近创建的n个容器。 
–no-trunc :不截断输出。 
-q :静默模式,只显示容器编号。 
-s :显示总的文件大小。

2.6 从容器创建一个新的镜像->保存对容器的修改

将容器e1e1f780dcc7 保存为新的镜像,并添加提交人信息和说明信息。

[root@centos1 ~]# docker commit -a "robin" -m "test-images" e1e1f780dcc7 mycentos7:v1
 
 
  • 1

-a :提交的镜像作者; 
-c :使用Dockerfile指令来创建镜像; 
-m :提交时的说明文字; 
-p :在commit时,将容器暂停。

2.7 获取容器/镜像的元数据
[root@centos1 ~]# docker inspect 688353a31fde
 
 
  • 1

-f :指定返回值的模板文件。 
-s :显示总的文件大小。 
–type :为指定类型返回JSON。

2.8 获取正在运行的容器的 IP
[root@centos1 ~]# docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
 
 
  • 1
2.9 start/stop/restart 命令

docker start :启动一个或多少已经被停止的容器 
docker stop :停止一个运行中的容器 
docker restart :重启容器

2.10 删除一个或多少容器
[root@centos1 ~]# docker rm -f e1e1f780dcc7
 
 
  • 1

-f :通过SIGKILL信号强制删除一个运行中的容器 
-l :移除容器间的网络连接,而非容器本身 
-v :-v 删除与容器关联的卷

2.11 删除本地一个或多少镜像
[root@centos1 ~]# docker rmi -f 688353a31fde
 
 
  • 1

-f :强制删除; 
–no-prune :不移除该镜像的过程镜像,默认移除;

2.12 docker开机启动:
systemctl enable docker
 
 
  • 1
2.13 容器开机启动:
docker run --restart=always --name first-mysql -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=root1234 -d mysql:latest
 
 
  • 1

–restart :参数来设置容器开机启动。 
no-container:不重启 
on-failure-container:退出状态非0时重启 
always:始终重启


docker中可以愉快的使用mysql了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值