docker 常用命令详解

容器生命周期管理命令

docker run: 创建一个新的容器并运行一个命令 Docker run命令
如下: 运行friendlyhello镜像,并在后台运行,且将容器的80端口映射到宿主机的4000端口

docker run -d -p 4000:80 friendlyhello

-d: 后台运行容器,并返回容器ID
-p: 端口映射,格式为 宿主机端口:容器端口
-i: 已交互模式运行容器 -t:容器重新分配一个伪输入终端, 通常-i -t 一起使用
--name="mycontainer": 为容器指定一个名称
-m : 设置容器使用内存最大值
--env-file=[] : 从指定文件读入环境变量

docker run -it 8fd3ffabad2d

docker start/stop/restart: 启动/停止/重启容器,后面跟一个或多个容器ID. Docker start/stop/restart 命令

docker stop e892afb4e7fc

docker exec: 在运行的容器中执行命令。

docker exec -it 9df70f9a0714 /bin/bash
//-it 分配伪终端  9df70f9a0714为运行的容器ID

进入到容器环境中,可输入基本命令查看。exit退出容器。

docker kill:杀掉一个运行中的容器

docker kill -s KILL 94c6b3c3f04a
//杀死一个id是94c6b3c3f04a的容器,并向容器发送KILL信号
//-s  自定义发送容器的信号

docker rm: 删除一个或多个容器 docker rm

-f 强制删除一个运行中的容器

docker pause/unpause : 暂停/恢复 容器中所有的进程

docker create : 创建一个新的容器但不启动它,

   和docker run的唯一区别是create创建不启动容器 ,run创建并启动

容器操作命令

docker ps: 列出容器,默认只显示正在运行的容器
                 -a 显示所有的容器,包括为运行的
                 -n 5 列出最近创建的5个容器

dokcer inspect : 获取容器/镜像的元数据

docker inspect [OPTIONS] NAME|ID

NAME|ID,为容器或镜像的name或id

docker top: 查看容器中运行的进程信息

docker top CONTAINER

docker attach: 连接到正在运行中的容器

要attach的容器必须正在运行,可以通过attach命令连接上同一个container来共享屏幕。

注意如果container当前正在前台运行进程,Ctrl-C不仅会导致退出容器,而且容器还会stop。我们想要的detach是脱离容器终端,但容器依然运行,解决方法,加上 --sig-proxy=false,这样detach时不会关闭容器。

docker attach --sig-proxy=false containername/containerid

docker events:从服务器获取实时事件

-f: 根据条件过滤
-- since:从指定时间戳后显示所有事件
--until : 事件流水事件截止到指定时间

// 显示镜像为image_name的 从2019/4/13 23:56:40 后的相关事件
// 2019/4/13 23:56:40的unix时间戳为1555171000
docker events -f "image"="image_name" --since="1555171000"

docker wait : 阻塞运行直到容器停止

docker logs: 获取容器的日志

//查看容器4130d8f05240从2019-04-13后的最新10条日志
docker logs --since="2019-04-13" --tail 10 4130d8f05240

镜像仓库

docker login: 登录到一个docker镜像仓库,默认dockerhub

docker logout: 登出一个docker镜像仓库,默认dokcerhub 

docker login [OPTIONS] [SERVR] 
options说明
-u: 登录的用户名
-p: 登录的密码,不建议用

docker pull : 从镜像仓库中拉去或者更新指定镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

docker push : 将本地镜像上传到镜像仓库,要先登录到镜像仓库

docker push [OPTIONS] NAME[:TAG]
docker push waldenz/friendlyhello:v1
// waldenz是本人的dockerhub  id号, friendlyhello是要在传到dockerhub上名称为friendlyhello的repository,
// 如dockerhub上没有,则自动创建

docker search: 从镜像仓库中查找镜像

docker search [OPTIONS] TERM

-s: 列出收藏数不小于指定值的镜像(已弃用,--filter代替)

--filter=stars=3: 列出收藏数不小于3的镜像

本地镜像管理

docker images :   列出本地镜像

     -a: 列出本地所有的镜像(包括中间映像层,默认情况下,过滤掉中间影响层)

docker rmi: 删除本地一个或多个镜像

         docker rmi -f image-name:v1  强制删除本地镜像image-name:v1

docker tag: 标记本地镜像,将其归入某一仓库,相当于重命名本地image
      docker tag ubuntu:15.10 runoob/ubuntu:v1 将镜像ubuntu15.10标记为 runoob/ubuntu:v1

docker save: 将指定镜像保存成tar归档文件, -o: 输出到的文件

   docker save -o the-image-filename.tar imagename:v1 将指定镜像保存成tar归档文件

docker load: 从tar文件中load镜像到本地镜像库

      docker load -i the-image-filename.tar (load后依然保留原始的镜像名称)

docker build: 使用Docerfile创建镜像

     docker build -t docker_demo:v1.   使用当前目录的Dockerfile创建镜像,标签为v1

docker history: 查看指定镜像的创建历史 
    docker history imagename:tag

docker import: 从归档文件中创建镜像,  从the_file_v1.tar文件创建newimagename:v1这个镜像。
   docker import  the_file_v1.tar inewmagename:v1 
   和load的区别是,import可以为镜像重命名,load不可

docker export: 将一个容器导出为文件,再使用docker import 导入为新的镜像。
   docker export -o aaaaa.tar a12345678     //将id为a12345678的容器保存为tar文件

注意: docker export 作用于容器,不是镜像,且save导出的内容是一个分层的文件系统,会比export单纯的linux文件目录大。

docker info: 显示docker系统信息,包括容器数和镜像数等

docker 常用命令详解_第1张图片

docker version: 显示docker版本信息

你可能感兴趣的:(Docker)