docker 常用命令

1. 容器生命周期管理

1.1 操作 image

-create : 根据image创建一个新的容器
-run : 根据image创建一个新的容器并运行

1.2 操作 container

-start : 启动容器
-stop : 停止容器
-restart : 重启容器
-pause : 暂停容器中的所有进程
-unpause : 恢复容器中的所有进程
-exec : 在运行中的容器执行命令,也可以进入容器内部

1.3 run

  从image创建容器并运行
  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  -d: 后台运行容器,并返回容器ID;
  -i: 以交互模式运行容器,通常与 -t 同时使用;
  -P: 随机端口映射,容器内部端口随机映射到主机的端口
  -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  --name="nginx-lb": 为容器指定一个名称;
  --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  -h "mars": 指定容器的hostname;
  -e username="ritchie": 设置环境变量;
  --env-file=[]: 从指定文件读入环境变量;
  --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
  -m :设置容器使用内存最大值;
  --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  --link=[]: 添加链接到另一个容器;
  --expose=[]: 开放一个端口或一组端口;
  --volume , -v: 绑定一个卷

示例:

  创建并启动容器
  docker  run  -d  -it  --net=host  <image_name>:<tag>  /bin/bash

  以sleep命令创建启动容器 
  --entrypoint后面是命令,命令最后是命令参数
  docker  run  -d  -it  --entrypoint=“sleep” <image_name>:<tag>  600

1.4 exec

  在运行的容器中执行命令
  示例:docker exec -it <container_id> /bin/bash
  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  -d :分离模式: 在后台运行
  -i :即使没有附加也保持STDIN 打开
  -t :分配一个伪终端

2. 容器操作

2.1 ps

  列出容器
  docker ps  -a

2.2 logs

  获取容器日志
  docker logs [OPTIONS] CONTAINER
  -f : 跟踪日志输出
  -since :显示某个开始时间的所有日志
  -t : 显示时间戳
  --tail :仅列出最新N条容器日志

2.3 port

  查询容器的端口映射情况
  docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]

2.4 export

  将容器导出为tar文件,包含镜像的当前信息
  export导出的镜像文件则用import加载,否则可能出现异常

  将镜像保存为tar文件
  docker export [OPTIONS] IMAGE
  docker export -o xxx.tar  <image_name>:<tag>
  -o : 归档的文件名

3. 镜像管理

3.1 images

  列出本地镜像
  docker images -a

3.2 build

  创建镜像
  以当前目录为基础目录,根据当前目录的 Dockerfile文件创建镜像,镜像名字为name,镜像tag为tag,后面的点(.)表示当前目录
  docker build -t name:tag .

3.3 history

  显示镜像的历史信息
  docker history [OPTIONS] IMAGE

3.4 rmi

  删除镜像
  docker rmi [OPTIONS] IMAGE [IMAGE...]
  docer rmi xxxx

3.5 save/load

  将镜像导出为tar文件,包含镜像的历史信息
  save导出的镜像文件则用load加载,否则可能出现异常

  将镜像保存为tar文件
  docker save [OPTIONS] IMAGE
  docker save -o xxx.tar  <image_name>:<tag>
  -o : 归档的文件名
  如果使用 image_id 导出镜像,导入的镜像没有 image_name 和 tag 信息

  根据tar文件创建镜像
  docker load [OPTIONS]
  docker load -i xxx.tar
  docker load < xxx.tar

3.6 import

  根据tar文件创建镜像
  docker import [OPTIONS]
  docker import -i xxx.tar
  docker import < xxx.tar

3.7 commit

  更新镜像版本,根据某个容器打包为新的镜像版本推送到本地仓库
  docker commit  -m <message>  -a <author>  <container_id> <image_name>:<tag>

3.8 push

  将本地镜像推送到远程仓库
  镜像有目录信息时需要带上目录信息
  docker  push  <image_name>:<tag>

3.8 tag

  对本地镜像进行重名名
  docker  tag  <image>  <image_name>:<tag>
  <image> 可以是 image_id,也可以是 image_name:tag,可以定位到具体镜像就行
  <image_name> 重命名后的 imahe_name 可以包含目录信息
  示例:docker  tag  ffelix/partition:v1.1  ffelix2/partition:1.2

4. 容器和宿主机

4.1 文件拷贝

  宿主机拷贝到容器
  docker  cp  filepath  <image_id>:filepath

  容器拷贝到宿主机
  docker cp <image_id>:filepath  filepath
原文地址:https://www.cnblogs.com/virgosnail/p/13226043.html