上篇文章介绍了 Centos7安装docker并修改成阿里云镜像源地址
可以参考使用: https://blog.csdn.net/weixin_44232093/article/details/124291813
文章目录
Docker-常用命令介绍
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
结果显示四条,与示例一对比的话就知道结果是正确的
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
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 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 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 | 容器的端口信息和使用的连接类型(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)
示例二: 删除image镜像
docker rmi REPOSITORY
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