您的位置:首页 > 运维架构 > Docker

CentOS7使用docker安装Mysql

2017-12-16 22:11 489 查看


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了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息