Docker学习笔记三:Docker常用的命令

 Docker常用的命令-镜像

1、镜像相关的命令

  • docker images                                                         # 查看本地所有的镜像
  • docker images -q 镜像名                                         # 查看镜像所用的ID
  • docker search 镜像名                                              # 从网络中查找需要的镜像
  • docker pull 镜像名[:版本号]                                     # 从Docker仓库下载镜像,不指定版本则为最新版本
  • docker rmi 镜像名/ID                                               # 删除指定本地镜像
  • docker rmi ‘docker images -q’                                 # 删除本地所有镜像
  • docker stats                                                                # 获取当前机器上运行容器的统计信息,如:cpu利用率、内存使用率等
  • docker save -o /root/xxx.tar REPOSITORY:TAG       # 指定镜像的REPOSITORY、TAG将将镜像导入到/root/xxx.tar文件下(方便导入镜像时自带tag信息)
  • docker save 镜像ID > /root/xxx.tar                             # 通过镜像ID将镜像导入到/root/xxx.tar文件下(导入镜像时不会自带tag信息)
  • docker tag 镜像ID REPOSITORY:TAG                      # 修改镜像的REPOSITORY、TAG信息
  • docker load -i /root/xxx.tar                                          # 通过导出的镜像包,将镜像导入镜像仓库(导出时没有指定repository、tag,导入后都显示None)

 

 

Docker常用的命令-容器

1、容器相关的命令

  • docker ps                                                                                                      # 查看正在运行的容器
  • docker ps -a                                                                                                       # 查看所有的容器,比较长的内容会省略展示
  • docker ps -a --no-trunc                                                                                      # 查看所有的容器,不截断展示所有的内容 
  • docker inspect 容器名称                                                                                    # 查看容器信息
  • docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名/ID                 # 查看IP地址,针对容器是centos镜像的才会有ip地址展示
  • docker exec -it 容器名称/ID [/bin/]bash                                                             # 进入容器中
  • exit                                                                                                                     # 在容器内执行则退出容器,容器不会关闭
  • docker ps -f status=exited                                                                                 # 查看停止的容器
  • docker start 容器名称/ID                                                                                   # 启动容器
  • docker start $(docker ps -a -q)                                                                          # 启动所有容器,无法控制启动的顺序,如果遇到有依赖关系,可能需要运行两次
  • docker restart 容器名称/ID                                                                                # 重启容器
  • docker stop 容器名称/ID                                                                                   # 停止容器
  • docker kill 容器名称/ID                                                                                      # 强制停止容器
  • docker stop $(docker ps -a -1)                                                                          # 停止所有容器
  • docker logs  容器名称/ID                                                                                  # 查看容器的日志
  • docker logs  容器名称/ID | more                                                                       # 查看容器的日志,如果日志比较长可用" | more"
  • docker logs -f  容器名称/ID                                                                               # 查看容器实时日志
  • docker logs  容器名称/ID  > /tmp/xxx.log                                                          # 将容器的日志保存到指定的文件中
  • docker rm   容器名称/ID                                                                                    # 删除容器,需要先停止再删除,避免失败
  • docker cp 需拷贝的文件或目录 容器名/ID:容器目录                                         # 将文件拷进容器(在宿主机器运行命令,而不是容器内部)
  • docker cp 容器名/ID:容器目录 需拷贝的文件或目录                                         # 将文件拷出容器(在宿主机器运行命令,而不是容器内部)
  • docker export 容器名/ID > xxx.tar.gz                                                                # 将容器导出为一个.tar.gz文件,如:docker export redis > redis.tar.gz
  • docker import xxx.tar.gx 镜像名:版本号                                                       # 将导出xxx.tar.gz文件导入创建新的镜像
  • docker top  容器名/ID                                                                                       # 查看容器内运行的进程
  • docker run  ......                                                                                                # 创建容器
    • -i:前台运行,通常与-t同时使用,容器创建后自动进入容器中,退出容器后,容器自动关闭
    • -t:为容器重新分配一个伪输入终端,通常与-i同时使用
    • -d:后台运行,容器创建后自动进入容器中(ps:运行的容器若不是一直运挂起的命令就会启动失败,如:redis启动时是一直挂起,centos启动时就不是一直挂起
    • --name:为创建的容器命名
    • --restart:可选配置,设置容器启动之后自动重启,默认no,always表示启动容器后重启(ps:已启动的容器用update更新:docker update --restart=always 容器id
    • --privileged=true:可选配置,目录映射时避免出现权限问题(ps:解决docker挂载主机目录访问出现cannot open directory .: Permission denied)
    • -P:大写,宿主机端口与容器端口随意映射,如:-P ip::containerPort
    • -p:小写,宿主机端口与容器端口随意映射,如:-p 8888:80
    • -v:  创建容器的时,映射目录参数
      • 将宿主机目录与容器内的目录进行映射,通过修改宿主机的某个目录从而影响容器
      • 当修改容器目录,宿主机目录也会实时更新,格式:-v宿主机目录:容器目录
      • 如果映射多级目录可能出现权限不足提示,因为CentOS7的安全模块selinux把权限禁掉了,需添加参数--privileged=true,解决挂载目录没有权限的问题
    • -m:配置容器可使用内存空间的最大是
    • -h:配置容器的hostname
    • -e:配置环境变量,如:-e TZ=Asia/Shanghai,设置时区
    • --add-host:可选,配置扩展的ip映射地址

2、进入容器后,解决无法使用Linux基本命令

  • 创建的容器一般是基于Ubuntu镜像,命令与CentOS有些细微的区别
  • apt-get update
  • apt-get install vim(需要安装的命令名称)

3、Docker格式化显示指定的列

  • 格式:docker ps [-a] --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"

 名称

 含义

 .ID

容器ID 

 .Image

镜像ID 

 .Command

 执行的命令

 .CreatedAt

容器创建时间 

 .RunningFor

运行时长 

 .Ports

暴露的端口 

 .Status

容器的状态 

.Names 

容器的名称 

 .Label

分配给容器的所有标签 

.Mounts 

容器挂在的卷 

 .Networks

容器所用的网络名称 

posted @ 2022-01-05 16:40  零下一度的微笑  阅读(167)  评论(0编辑  收藏  举报