垃圾站 VPS技术 Docker如何拉取Mysql镜像并启动访问

Docker如何拉取Mysql镜像并启动访问

Docker-常用命令介绍


1. 搜索-search命令

search命令的主要作用就是,在镜像源仓库搜索指定镜像资源,我这里镜像源换成了 阿里云的镜像源

示例一: 搜索

比如说我们要搜索关于 Mysql 的镜像:

在这里插入图片描述

可以看到出现了五个不同的列,那么这几个列都代表了什么,分别是:

NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED

镜像名称镜像描述星星数(获赞数量)是否正式(是否是官方镜像)自动构建(一般不用关注)

一般我们用到的命令也就是几个而已,比如过滤命令 -f , -s

示例二: 过滤搜索

比如我想搜索获赞数(星星数量) 大于 1000 的镜像

docker search --filter=stars=1000 mysql

结果出现了两条,对比上图我们知道过滤成功

在这里插入图片描述

示例三: 过滤搜索

比如我们想知道都有哪些mysql镜像是官方发布

docker search --filter is-official=true mysql

结果显示四条,与示例一对比的话就知道结果是正确的

在这里插入图片描述

2. 拉取-pull命令

pull命令的主要作用是拉取镜像,语法是这样的

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

示例一: 默认拉取

比如我们要拉取mysql的镜像,如果没有指定标签,那么 Docker Engine会使用 :latest 标签作为默认值,默认拉取最新镜像版本 示例中我指定了镜像名称,也就是search搜索结果中的NAME标签 在这里插入图片描述 拉取命令

docker pull centos/mysql-57-centos7

结果显示,拉取成功,标签默认为 :latest

在这里插入图片描述

示例二: 指定版本拉取

比如说我们要拉取 ubuntu-14.04 版本的镜像

$ docker pull ubuntu:14.04

14.04: Pulling from library/ubuntu
5a132a7e7af1: Pull complete
fd2731e4c50c: Pull complete
28a2f68d1120: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
Status: Downloaded newer image for ubuntu:14.04 # 可以看到拉取成功

示例三: 通过摘要拉取镜像

示例二中的 Digest标签就是摘要,那么通过摘要拉取镜像的意思就是 : 拉取镜像时,摘要取代名称/标签 我们可以通过 docker image inspect 镜像id 命令来查看已下载镜像的详情信息,以此来获取镜像摘要

$ docker pull ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2

sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2: Pulling from library/ubuntu
5a132a7e7af1: Already exists
fd2731e4c50c: Already exists
28a2f68d1120: Already exists
a3ed95caeb02: Already exists
Digest: sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
Status: Downloaded newer image for ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2

示例四: 指定源地址拉取镜像

默认情况下,docker pull从Docker Hub中拉出映像。 也可以手动指定注册表的路径 例如,如果已设置本地注册表,则可以指定其从中拉取的路径。 注册表路径与URL类似,但不包含协议说明符(http://)。 以下命令从端口5000(myregistry.local:5000)上的本地注册表中提取测试/测试镜像:

docker pull myregistry.local:5000/testing/test-image

3. 运行-run命令

docker run : 创建一个新的容器并运行

语法说明:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS-可选参数说明

命令描述

-a stdin指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项-d后台运行容器,并返回容器ID-i以交互模式运行容器,通常与 -t 同时使用-P随机端口映射,容器内部端口随机映射到主机的端口 (不常用)-p指定端口映射,格式为:主机(宿主)端口:容器端口(常用)-t为容器重新分配一个伪输入终端,通常与 -i 同时使用-m设置容器使用内存最大值–name=XXX为容器指定一个名称,:后名称是自己随便定义的–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运行–net=“bridge”指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型–link=[]添加链接到另一个容器–expose=[]开放一个端口或一组端口–volume , -v绑定一个卷

示例一:守护者模式启动

以守护者模式启动mysql镜像,并取别名my_mysql,端口映射3306,设置用户的密码

docker run -di --name=my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 \
centos/mysql-57-centos7

-di : 不进入容器,使用守护式进程运行镜像--name : 给容器起别名,这里叫 my_mysql-p : 指定端口映射,宿主机的3306端口映射到容器的3306端口‐e MYSQL_ROOT_PASSWORD=123456 : =前面是固定语法,设置mysql用户的密码,=后自己编辑即可centos/mysql‐57‐centos7 : 镜像名称

示例二: 映射目录

如果需要指定目录文件,那么启动时需要使用 -v 命令 使用镜像 nginx:latest以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data

docker run -p 80:80 -v /data:/data -d nginx:latest

示例三: 交互模式-进入容器

使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令

runoob@runoob:~$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/# 

4. 展示-images命令

docker images : 列出本地镜像

语法

docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS说明:

命令描述

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

示例一: 查看本地镜像

查看本地镜像

[root@iZ2ze9p6vshix8hl1pvisgZ tensquare]# docker images
REPOSITORYTAG IMAGE ID CREATED SIZE
packing v1.0374722abcce6 17 months ago 570MB
es03latest65fd1380696e 17 months ago 619MB
es-2.0latest312fcc0af56f 17 months ago 618MB
centos/mysql-57-centos7 latestf83a2938370c 2 years ago 452MB
elasticsearch 5.6.8 6c0bdf761f3b 4 years ago 570MB

5. 展示-ps命令

docker ps : 列出容器

语法

docker ps [OPTIONS]

OPTIONS说明

命令描述

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

示例一: 列出正在运行的容器

[root@iZ2ze9p6vshix8hl1pvisgZ tensquare]# docker ps
CONTAINER ID IMAGE COMMANDCREATED STATUS PORTSNAMES
51c7ebb15657 centos/mysql-57-centos7 "container-entrypoin…" 3 seconds ago Up 2 seconds 0.0.0.0:3306->3306/tcp my_mysql

图例 在这里插入图片描述

输出字段描述

字段描述

CONTAINER ID容器 IDIMAGE使用的镜像COMMAND启动容器时运行的命令CREATED容器的创建时间STATUS容器状态,包含created(已创建),restarting(重启中),running(运行中),removing(迁移中),paused(暂停),exited(停止),dead(死亡)PORTS容器的端口信息和使用的连接类型(tcp\udp)NAMES容器名称,如果没有指定系统则自动分配

示例二: 过滤查询

列出最近创建的5个容器信息

[root@iZ2ze9p6vshix8hl1pvisgZ tensquare]# docker ps -n 5
CONTAINER ID IMAGE COMMAND ...
51c7ebb15657 centos/mysql-57-centos7 "container-entrypoin…"...

6. 启动停止重启-start/stop/restart 命令

启动已被停止的容器myrunoob

$ docker start myrunoob

停止运行中的容器myrunoob

$ docker stop myrunoob

重启容器myrunoob

$ docker restart myrunoob

7. 删除-rm命令

docker rm :删除一个或多个容器

语法

docker rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS说明:

命令描述

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

示例一: 删除容器

强制删除容器 db01、db02

docker rm -f db01 db02

移除容器 nginx01 对容器 db01 的连接,连接名 db

docker rm -l db 

删除容器 nginx01, 并删除容器挂载的数据卷

docker rm -v nginx01

删除所有已经停止的容器

docker rm $(docker ps -a -q)

8. kill-命令

docker kill :杀掉一个运行中的容器

示例一: kill容器

杀掉运行中的容器mynginx

runoob@runoob:~$ docker kill -s KILL mynginx
mynginx
上一篇
下一篇
联系我们

联系我们

返回顶部