Docker 命令总结

安装

下载镜像

镜像仓库地址

以安装dotnet core 为例,直接执行命令:docker pull microsoft/dotnet, 详细解释见链接:https://hub.docker.com/r/microsoft/dotnet/

images 操作

docker images :显示所有镜像文件
docker inspect [image-id/image-name] :显示镜像详细信息
docker search [image-name] :搜索镜像
docker rmi [image-id/image-name] :删除镜像
docker build -t [image-name] . :创建镜像; 该命令要求Dockerfile在当前目录下

docker images | grep "redis" : 查询所有包含redis的镜像

docker images | grep "redis" | awk '{print $3}' : 数据包含redis镜像的第3列内容(镜像id)

container操作

docker ps :查看当前运行的容器
docker ps -a :查看所有容器

  • 容器标题含义:
    CONTAINER ID:容器的唯一表示ID
    IMAGE:创建容器时使用的镜像
    COMMAND:容器最后运行的命令
    CREATED:创建容器的时间
    STATUS:容器状态
    PORTS:对外开放的端口
    NAMES:容器名。可以和容器ID一样唯一标识容器,同一台宿主机上不允许有同名容器存在,否则会冲突
  • docker start [container-id/container-name] :启动容器
    docker stop [container-id/container-name] :停止容器
    docker rm [container-id/container-name] :删除容器; 删除前,要求先停止容器
  • docker stop $(docker ps -a -q) :停止所有容器(可以使用同样方式,操作所有容器,镜像)
  • docker ps -a --format "{{.ID}} {{.Command}}" : 显示指定列(同样可以适用于查看image)

kubernet

  • docker(kubernete_name)名称查询:kubectl get pods

  • 进入docker(kubernete)内部:kubectl exec -it [kubernete_name] sh

  • 创建容器例子:docker run --name=pgdemo_example -p 5000:5000 -d pgdemo
    --name:指定容器名称
    -p:指定映射端口
    -d:指定容器 后台运行
    [pgdemo] 为镜像名称

log

docker logs -f -t --since="2018-01-01" --tail=10 [container-name] :查看日志

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

实例:

  • 查看指定时间后的日志,只显示最后10行
    $ docker logs -f -t --since="2018-08-01" --tail=10 container-id

  • 查看最近10分钟的日志
    $ docker logs --since 10m container-id

  • 查看某时间之后的日志
    $ docker logs -t --since="2018-08-01T11:30:56" container-id

  • 查看某时间段日志
    $ docker logs -t --since="2018-08-01T11:30:56" --until "2018-08-01T12:30:56" container-id

  • 输出到文件中:$ docker logs -t --since="2018-08-01T11:30:56" > test.log

dockerfile

  • 一个Dotnet Core例子, Dockerfile文件内容如下:
    --基于 microsoft/dotnet:2.1-aspnetcore-runtime 构建镜像 FROM microsoft/dotnet:2.1-aspnetcore-runtime

    --拷贝当前文件夹下所有文件到 docker容器中的publish文件夹中
    --格式: COPY [本地文件路径] [docker中的路径,名字随意写]
    COPY . /publish

    --设置工作目录为 /publish 文件夹,即容器启动默认的文件夹 WORKDIR /publish

    --设置Docker容器对外暴露5000端口 EXPOSE 5000

    --运行程序 ENTRYPOINT ["dotnet", "HelloWorld.dll", "--server.urls", "http://*:5000"]

实例

postgresql

命令:
docker run -d --name [container-name] -v [docker-datapath]:[host-datapath] -p [host-port]:[docker-port] [image-name]

实例:
docker run -d --name postgresql_database -v /opt/data/postgresql:/var/lib/pgsql/data -p 5432:5432 [postgres]

nginx

问题分析

进入Docker实例内部

Docker Image实例本身是一个独立运行的环境,可以进入到实例内部,查看运行状态等信息。

docker exec -it [container-name] bash :进入实例内部

 

vim 

  • 搜索:输入:/字符串
  • 查看下一个匹配,按下n(小写n) 

  • 跳转到上一个匹配,按下N(大写N)

  •  跳转到文件头:gg
  •  跳转到文件末尾:Shift+g

 

 

原文地址:https://www.cnblogs.com/arvinzhang/p/9962636.html