文章目录上篇文章介绍了 Centos7安装docker并修改成阿里云镜像源地址
可以参考使用: https://blog.csdn.net/weixin_44232093/article/details/124291813
- Docker-常用命令介绍
- 1. 搜索-search命令
- 示例一: 搜索
- 示例二: 过滤搜索
- 示例三: 过滤搜索
- 2. 拉取-pull命令
- 示例一: 默认拉取
- 示例二: 指定版本拉取
- 示例三: 通过摘要拉取镜像
- 示例四: 指定源地址拉取镜像
- 3. 运行-run命令
- 示例一:守护者模式启动
- 示例二: 映射目录
- 示例三: 交互模式-进入容器
- 4. 展示-images命令
- 示例一: 查看本地镜像
- 5. 展示-ps命令
- 示例一: 列出正在运行的容器
- 示例二: 过滤查询
- 6. 启动停止重启-start/stop/restart 命令
- 7. 删除-rm命令
- 示例一: 删除容器
- 8. kill-命令
- 示例一: kill容器
1. 搜索-search命令
search命令的主要作用就是,在镜像源仓库搜索指定镜像资源,我这里镜像源换成了 阿里云的镜像源
示例一: 搜索比如说我们要搜索关于 Mysql 的镜像:
可以看到出现了五个不同的列,那么这几个列都代表了什么,分别是:
| NAME | DESCRIPTION | STARS | OFFICIAL | AUTOMATED |
|---|---|---|---|---|
| 镜像名称 | 镜像描述 | 星星数(获赞数量) | 是否正式(是否是官方镜像) | 自动构建(一般不用关注) |
一般我们用到的命令也就是几个而已,比如过滤命令 -f , -s
示例二: 过滤搜索比如我想搜索获赞数(星星数量) 大于 1000 的镜像
docker search --filter=stars=1000 mysql
结果出现了两条,对比上图我们知道过滤成功
比如我们想知道都有哪些mysql镜像是官方发布的
docker search --filter is-official=true mysql
结果显示四条,与示例一对比的话就知道结果是正确的
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-image3. 运行-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 REPOSITORY TAG IMAGE ID CREATED SIZE packing v1.0 374722abcce6 17 months ago 570MB es03 latest 65fd1380696e 17 months ago 619MB es-2.0 latest 312fcc0af56f 17 months ago 618MB centos/mysql-57-centos7 latest f83a2938370c 2 years ago 452MB elasticsearch 5.6.8 6c0bdf761f3b 4 years ago 570MB5. 展示-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 COMMAND CREATED STATUS PORTS NAMES 51c7ebb15657 centos/mysql-57-centos7 "container-entrypoin…" 3 seconds ago Up 2 seconds 0.0.0.0:3306->3306/tcp my_mysql
图例
输出字段描述
| 字段 | 描述 |
|---|---|
| CONTAINER ID | 容器 ID |
| IMAGE | 使用的镜像 |
| COMMAND | 启动容器时运行的命令 |
| CREATED | 容器的创建时间 |
| STATUS | 容器状态,包含created(已创建),restarting(重启中),running(运行中),removing(迁移中),paused(暂停),exited(停止),dead(死亡) |
| PORTS | 容器的端口信息和使用的连接类型(tcpudp) |
| 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 myrunoob7. 删除-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
参考 : https://www.yiibai.com/docker/search.html
菜鸟教程: https://www.runoob.com/docker/docker-command-manual.html



