镜像命令

1.搜索镜像search

1.1命令帮助

  1. Usage: docker search [OPTIONS] TERM
  2. Docker Hub搜索镜像,https://hub.docker.com/
  3. Options:
  4. -f, --filter filter 根据所提供的条件过滤输出
  5. --format string 使用Go模板的漂亮打印搜索
  6. --limit int 搜索结果的最大数目(默认25个)
  7. --no-trunc 不截断输出

1.2 例子

NAME:镜像名称 DESCRIPTION:镜像描述 STARS:热度 OFFICIAL:是否官方 AUTOMATED:是否自动化

  1. ##搜索mysql
  2. [root@localhost /]# docker search mysql
  3. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  4. mysql MySQL is a widely used, open-source relation 11886 [OK]
  5. mariadb MariaDB Server is a high performing open sou 4544 [OK]
  6. ##热度大于3000的
  7. [root@localhost /]# docker search mysql --filter=stars=3000

2. 下载镜像pull

2.1命令帮助

  1. Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  2. 从注册表中提取镜像或存储库
  3. Options:
  4. -a, --all-tags 下载存储库中所有标记的图像
  5. --disable-content-trust 跳过镜像验证(默认为true)
  6. --platform string 如果服务器支持多平台,则设置平台
  7. -q, --quiet 抑制详细输出

2.2例子

  1. [root@localhost /]# docker pull mysql
  2. Using default tag: latest #默认latest 最后一个版本
  3. latest: Pulling from library/mysql
  4. 72a69066d2fe: Pull complete #分层下载 依赖
  5. ...
  6. 626033c43d70: Already exists #已存在的依赖镜像
  7. e0431212d27d: Pull complete
  8. Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
  9. Status: Downloaded newer image for mysql:latest
  10. docker.io/library/mysql:latest #真实拉取地址
  11. [root@localhost /]# docker pull mysql:5.7

3.本地镜像管理

3.1镜像列出images

3.1.1命令帮助
Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]
列出镜像
Options:
  -a, --all             显示所有图像(默认隐藏中间图像)
      --digests         显示摘要
  -f, --filter filter   根据所提供的条件过滤输出
      --format string   使用Go模板打印漂亮的图像
      --no-trunc        不截断输出
  -q, --quiet           只显示镜像id

3.1.2例子
[root@localhost /]# docker images -a
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
redis         latest    7614ae9453d1   2 days ago     113MB
mysql         latest    3218b38490ce   3 days ago     516MB
hello-world   latest    feb5d9fea6a5   3 months ago   13.3kB

3.2镜像删除rmi

3.2.1命令帮助
Usage:  docker rmi [OPTIONS] IMAGE [IMAGE...]
删除一个或多个镜像
Options:
  -f, --force      强制删除图像
      --no-prune   不删除未标记的父依赖镜像

3.2.2例子
##注意:启动过有实例的 删不了$(docker images -q)
##删除镜像 多个id空格隔开
[root@localhost /]# docker rmi c20987f18b13 c2xxx

##删除全部镜像
[root@localhost /]# docker rmi $(docker images -aq)

容器命令

1.实例化并运行run

1.1 常用命令帮助(太多)
Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
在新容器并运行
Options:
     --name string                    给容器指定一个名称
 -d, --detach                         在后台运行容器并打印容器ID   
 -i, --interactive                    已交互式运行容器,通常与-t同时使用 
 -P, --publish-all                    将所有公开的端口发布到随机端口(随机端口映射)
 -p, --publish list                   发布一个容器的端口到主机

1.2例子
##交互式运行一个centos
[root@localhost /]# docker run -it centos /bin/bash

##退出交互 并关闭容器实例
[root@9f4819e7be0d /]# exit

##退出交互 不关闭容器实例(没反应)
ctrl+P+Q

2.查看容器ps

2.1 命令帮助
Usage:  docker ps [OPTIONS]
列出容器
Options:
  -a, --all             显示所有容器(默认显示正在运行)
  -f, --filter filter   根据所提供的条件过滤输出
      --format string   使用Go模板的漂亮打印容器
  -n, --last int        显示最近创建的容器(包括所有状态)(默认为-1)
  -l, --latest          显示最新创建的容器(包括所有状态)
      --no-trunc        不截断输出
  -q, --quiet           只显示容器id
  -s, --size            显示文件总大小

2.2例子
##最近n个创建的容器
[root@localhost /]# docker ps -n=2

3. 删除容器rm

3.1 命令帮助
Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]
删除一个或多个容器(未停止的删不成功)
Options:
  -f, --force     强制移除正在运行的容器(使用SIGKILL)
  -l, --link      删除指定的链接
  -v, --volumes   删除与容器关联的匿名卷

3.2 例子
##强制删除所有
[root@localhost /]# docker rm -f $(docker ps -aq)

4.启动容器

Usage:  docker start [OPTIONS] CONTAINER [CONTAINER...]
启动一个或多个停止的容器
Options:
  -a, --attach               附加STDOUT/STDERR和前向信号
      --detach-keys string   覆盖用于分离容器的键序列
  -i, --interactive          将容器的STDIN

5.重启容器

Usage:  docker restart [OPTIONS] CONTAINER [CONTAINER...]
重新启动一个或多个容器
Options:
  -t, --time int   在杀死容器之前等待停止的秒数(默认为10

6.停止容器

Usage:  docker stop [OPTIONS] CONTAINER [CONTAINER...]
停止一个或多个正在运行的容器
Options:
  -t, --time int   杀死它之前等待停止的秒数(默认10)

7.杀死容器

Usage:  docker kill [OPTIONS] CONTAINER [CONTAINER...]
杀死一个或多个正在运行的容器
Options:
  -s, --signal string   要发送给容器的信号(默认为“KILL”)
docker run [OPTIONS] IMAGE [COMMAND] [ARG..]
    OPTIONS说明:
       --name="容器新名字" 为容器指定一个名字
        -d:后台运行容器,并返回容器id,即启动守护式容器
        -i:已交互式运行容器,通常与-t同时使用
        -t:为容器重新分配一个伪输入终端,通常与-i同时使用
        -P:随机端口映射
        -p:指定端口映射,有以下四种格式:
        ip:hostPort:containerPort
        ip::containerPort
        hostPort:containerPort
        containerPort
      --privileged=true 有时run 有错误,加这个参数 消除错误

常用其他命令

后台启动容器

-d 后台运行,ps后没有,是因为没有一个前台进程,就会自动停止

[root@localhost /]# docker run -d centos
f927770734d37f7c87ad7149e9145c66803312b18ec3f7582fc756cc62844037
[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

查看日志

docker logs -tf --tail 10 [实例id]

查看容器中的进程

docker top [实例id]

镜像中的元数据

docker inspect [实例id]

进入正在运行的容器

方式一:进入容器后开启一个新的终端
docker exec -it [实例id] bashShell

方式二:进入容器正在执行的终端
dcoker attach [实例id]

容器拷贝到宿主机

docker cp 48cf5b7d4569:/home/aaa.txt /home