Loading

docker简单使用

镜像命令

查看镜像(本地)

[root@vultrguest ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 f965319e89de        2 weeks ago         448MB

各项说明

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

OPTIONS说明

  • -a:列出本地所有镜像
  • -q:只显示镜像ID
  • --digests:显示镜像的摘要信息
  • --no-trunc:显示完整的镜像信息

搜索镜像( Docker Hub 网站来搜索镜像)

[root@vultrguest ~]# docker search redis
NAME                             DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
redis                            Redis is an open source key-value store that…   8170                [OK]                
bitnami/redis                    Bitnami Redis Docker Image                      145                                     [OK]
sameersbn/redis                                                                  80                                      [OK]
grokzen/redis-cluster            Redis cluster 3.0, 3.2, 4.0, 5.0, 6.0           67                                      
rediscommander/redis-commander   Alpine image for redis-commander - Redis man…   39                                      [OK]

各项说明

  • NAME: 镜像仓库源的名称
  • DESCRIPTION: 镜像的描述
  • OFFICIAL: 是否 docker 官方发布
  • stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
  • AUTOMATED: 自动构建。

OPTIONS说明

  • --no-trunc:显示完整的镜像信息
  • -s:列出收藏数不少于指定值的镜像
  • --automated‘:只列出automated build类型的镜像

拖取镜像

[root@vultrguest ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
54fec2fa59d0: Already exists 
9c94e11103d9: Pull complete 
04ab1bfc453f: Pull complete 
a22fde870392: Pull complete 
def16cac9f02: Pull complete 
1604f5999542: Pull complete 
Digest: sha256:399a9b17b8522e24fbe2fd3b42474d4bb668d3994153c4b5d38c3dafd5903e32
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest

说明

通过docker pull 镜像名:TAG可以下载指定版本的镜像

删除镜像

[root@vultrguest ~]# docker rmi redis
Untagged: redis:latest
Untagged: redis@sha256:399a9b17b8522e24fbe2fd3b42474d4bb668d3994153c4b5d38c3dafd5903e32
Deleted: sha256:f9b9909726890b00d2098081642edf32e5211b7ab53563929a47f250bcdc1d7c
Deleted: sha256:7bd7286c61dee81eb691f022d070202ba2840574c460f6dcbc21792f8bf22a7f
Deleted: sha256:ba618723adf8eb28ec3d2b2003442599e3f947b4d66875b80dc6582c61f89a27
Deleted: sha256:cd3c331f934414f0d7a2a3ceb80935a54252dba553f1c1ee823961a07e8d1957
Deleted: sha256:09f9b5d7722b181ae2acd61396c20549afdea66ee31f921850191db5afe6738a
Deleted: sha256:3bd2921d0d3dd52dbcdc462f35b11cb89df901205284b0fea03c19bb8359907a

说明

docker rmi -f redis:有时会因为镜像之间的相互依赖无法删除,可以通过-f参数强制删除

容器命令

新建并启动容器

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

[root@vultrguest ~]# docker run -it --name="centOS_test" centos
[root@ceb1026225bd /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

OPTIONS说明(常用)

  • --name="新容器的名字":为容器指定一个名字
  • -d:后台运行容器,并返回一个容器ID,也就是启动守护式容器
  • -i:以交互模式运行容器,通常与-t同时使用
  • -t:为容器重新分配一个伪终端,通常与-i同时使用
  • -P:随机端口映射
  • -p:指定端口映射,有一下四种格式
    • ip:hostPort:ContainerPort
    • ip::containerPort
    • hostPort:containerPort
    • containerPort

列出当前所有正在运行的容器

[root@vultrguest ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ceb1026225bd        centos              "/bin/bash"         2 minutes ago       Up 2 minutes                            centOS_test

OPTIONS说明(常用)

  • -a:列出当前所有正在运行的容器+历史上运行过的容器
  • -l:显示最近出创建的容器
  • -n:显示最近n个创建的容器 docker ps -n 3
  • -q:静默模式,只显示容器的编号
  • --no-trunc:不截断输出

退出容器

  • 容器内命令行输入exit停止并退出
  • 快捷键ctrl+P+Q容器不停止退出

启动容器

docker start 容器名或容器ID

重启容器

docker restart 容器名或容器ID

停止容器

docker stop 容器名或容器ID

强制停止容器

docker kill 容器名或容器ID

删除已经停止的容器

  • 删除单个
    • docker rm 容器名或容器ID
  • 删除多个
    • docker rm -f $(docker ps -a -q)
    • docker ps -a -q | xargs docker rm

重点

启动守护式容器

当时用docker run -d centos启动容器时,可能会遇到容器启动后秒退出,这是因为:Docker容器后台运行,就必须又一个前台进程。容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就会自动退出。可以使用docker run -d centos /bin/sh -c "while true;do echo hello world;sleep 2;done"是的centos容器在它的前台执行命令

查看容器日志

docker logs -f -t --tail 容器名或容器ID

  • -t:加入时间戳
  • -f:跟随最新的日志打印
  • --tail n:显示最后n条

查看容器内运行的进程

docker top 容器名或容器ID

进入正在运行的容器并以命令行交互

  • docker exec -it 容器名或容器ID bashShell
    • 不进入容器,执行bashShell,例如:docker exec -it trusting_shtern ls
    • 进入容器,docker exec -it trusting_shtern /bin/bash
  • docker attach 容器名或容器ID
  • 两者区别
    • attach 直接进入容器启动命令的终端,不会启动新的进程
    • exec实在容器中打开新的终端,并且可以启动新的进程

从容器内拷贝文件到主机上

docker cp 容器名或容器ID:容器内路径 目的主机路径

注:容器内路径使用绝对路径

posted @ 2020-07-23 17:14  尧雷  阅读(91)  评论(0编辑  收藏  举报