docker 常用命令

一、镜像

1.查看镜像列表

列出本地主机上的镜像

docker images

各个选项说明:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签,同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

 

2.查看镜像元素

docker inspect 镜像id

3.搜索镜像

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/

我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 php 来寻找适合我们的镜像。

docker search 镜像名

NAME: 镜像仓库源的名称

DESCRIPTION: 镜像的描述

OFFICIAL: 是否 docker 官方发布

stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。

AUTOMATED: 自动构建。

4.获取镜像

使用命令 docker pull 来下载镜像。

docker pull php

5.推送镜像

使用docker push 推送镜像到远程仓库,将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

docker push [OPTIONS] NAME[:TAG]

OPTIONS说明:

  • --disable-content-trust :忽略镜像的校验,默认开启

 

6.运行镜像

使用 docker run 命令运行镜像,启动容器

docker run -it php-fpm-supervisor:v7.2-20200516 /bin/bash

7.删除镜像

镜像删除使用 docker rmi 命令,或者docker images rm

doctor rmi 镜像名/镜像id
doctor images rm 镜像名/镜像id

8.保存镜像

使用docker save保存镜像

docker save imgageId > php-fpm-v7.2-20201022.tar

 

但是推荐下面打包镜像的方法,这样可以避免在导入镜像的时候,镜像名字为none问题

 

docker save -o php-fpm-v7.2-20201022.tar sihe/php-fpm:v7.2-20201022

9.导入镜像

使用docker load 导入镜像

docker load < php-fpm-v7.2-20201022.tar

 

10.制作镜像

如果从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。

  • 1、从已经创建的容器中更新镜像,并且提交这个镜像,通过docker commit 命令 请参考下面的更新镜像
  • 2、使用docker build命令,通过创建 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

11.更新镜像

使用镜像启动容器后(查看运行镜像),在运行的容器内可以进行软件安装或者更新,然后在完成操作之后,输入 exit 命令来退出这个容器。

此时 ID 为 f4ba1233d286 的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本。

docker commit -m="update php ext" -a="sihe" f4ba1233d286 sihe/php-fpm-supervisor:v2.0

各个参数说明:

  • -m: 提交的描述信息
  • -a: 指定镜像作者
  • -p 在commit时,将容器暂停
  • -c :使用Dockerfile指令来创建镜像;
  • f4ba1233d286容器 ID
  • sihe/php-fpm-supervisor:v2.0: 指定要创建的目标镜像名

 

基于容器制作镜像时,有时候想要改动镜像参数元素

首先停止容器,不然无法修改配置文件

配置文件路径为:/var/lib/docker/containers/容器ID

在该目录下找到一个文件 hostconfig.json ,比如修改RestartPolicy,找到该文件中关键字 RestartPolicy

修改前配置:"RestartPolicy":{"Name":"no","MaximumRetryCount":0}

修改后配置:"RestartPolicy":{"Name":"always","MaximumRetryCount":0}

最后启动容器,然后进行镜像制作

 

12.设置镜像命名、标签

可以使用 docker tag 命令,为镜像添加一个新的标签。 docker tag [镜像id] [新镜像名称]:[新镜像标签]

docker tag 2f915d5a2339 sihe/php-pgsql-pdf:v2.0

二、容器

查看容器列表

使用docker ps -a,查看所有的容器命令

docker ps -a

查看容器的底层信息

使用docker inspect,查看容器的元数据信息

docker inspect [容器id]

 

查看容器状态

使用docker stats 查看

docker stats [OPTIONS] [CONTAINER...]

查看容器日志

使用docker logs查看日志

docker logs [OPTIONS] CONTAINER

备注:参数说明

Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

启动容器

使用docker run 启动一个容器,使用 镜像启动一个容器,参数为以命令行模式进入该容器:

docker run -it php /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • php: php 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

要退出终端,直接输入 exit:

 

后台运行一个容器,在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。

docker run -itd php /bin/bash

注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec

 

进入容器

在使用 -d 参数时,容器启动后会进入后台。想要进入容器,可以通过以下指令进入:

  • docker attach
  • docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

attach 命令

下面演示了使用 docker attach 命令。

 

docker attach [OPTIONS] [容器id]

推荐使用 docker exec

docker exec -it [容器id] /bin/bash

停止容器

使用docker stop命令,停止容器

docker stop [容器id]

启动一个停止的容器

docker start [容器id]

重启容器

使用docker restart,重启容器

docker restart [容器id]

删除容器

使用docker rm 命令,删除容器使

docker rm -f [容器id]

 

RestartPolicy
 
 
posted @ 2020-10-16 17:57  joshua317  阅读(273)  评论(0编辑  收藏  举报