Docker常用命令

帮助启动类命令

1
2
3
4
5
6
7
8
systemctl start  docker #启动docker
systemctl stop docker  #停止docker
systemctl restart docker  #重启docker
systemctl status docker   #查看docker状态
systemctl enable docker  #开机启动
docker  info  #查看docker概要信息
docker --help #查看docker总体帮助文档
docker 具体命令 --help  #查看docker命令帮助文档

镜像命令

  • 列出本地主机上的镜像:docker images

 

 

1
2
3
##options说明:
    -a  #列出本地所有的镜像(含历史镜像层)
    -q  #只显示镜像ID

  

  •  docker search 某个XX镜像名字
1
2
3
4
5
6
#网站:https://hub.docker.com
#命令:
    docker search [options] 镜像名字  #docker search redis
    options说明:
        --limit :只列出N个镜像,默认25个
        docker search --limit 5 redis

  

 

  •  docker pull 某个xxx镜像名字

 

1
2
docker pull #镜像名字:[TAG]
#没有TAG就是最新版  等价于:docker pull 镜像名字:latest

 

 

  

 

  •  docker system df 查看镜像/容器/数据卷所占的空间

 

 

 

 

 

 

  • 删除镜像 

 

1
2
3
docker rmi -f 镜像ID  #删除单个
docker rmi -f 镜像名1:TAG 镜像名2:TAG  #删除多个
docker rmi -f ${docker images -qa}  #删除全部

 

容器命令

  • 有镜像才能创建容器,这是根本前提

 

 

 

1
2
docker pull centos
docker pull ubuntu

 

  • 新建+启动容器
1
2
3
4
5
6
7
8
9
10
docker run [options] IMAGE [command][ARG]
    #options说明(常用):有些是一个减号,有些是两个减号
        --name="容器新名字"  为容器指定一个名称
        -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
        -i:以交互式运行容器,通常与-t同时使用
        -t:为容器重新分配一个伪输入终端,通常与-i同时使用;也即启动交互式容器(前台有伪终端,等待交互)
        -P:随机端口映射,大写P
        -p:指定端口映射,小写p
    #启动交互式容器(前台命令行)
        docker run -it centos /bin/bash

  

 

 

  • 列出当前所有正在运行的容器
1
2
3
4
5
6
docker ps [options]
    #options说明:
        -a #列出当前所有正在运行的容器+历史上运行过的
        -l #显示最近创建的容器
        -n #显示最近n个创建的容器
        -q #静默模式,只显示容器编号
  • 退出容器
1
2
exit #run进去容器 exit退出 容器停止
ctrl+p+q  #run进去容器 ctrl+p+q退出,容器不停止
  • 容器启停
1
2
3
4
5
6
docker start 容器ID或者容器名  #启动已停止运行的容器
docker restart 容器ID或者容器名 #重启容器
docker stop 容器ID或者容器名  #停止容器
docker kill 容器ID或者容器名  #强制停止容器
docker rm 容器ID  #删除已停止的容器
docker rm -f ${docker ps -a -q};docker ps -a -q | xargs docker rm  #一次性删除多个容器实例
  • 重要

 

1
2
3
4
5
6
7
8
9
10
#启动守护式容器(后台服务器)
#大部分场景下,我们希望dockker的服务是在后台运行的,可以通过-d指定容器的后台运行模式
  docker run -d  容器名
 #解决容器自动停止
  docker run -it --name my-redis redis bash #使用交互界面后(Ctrl+p+q)退出容器  
  docker run -itd --name my-redis2 redis bash #td命令结合使用 -i不是必需,加了后容器起来终端返回容器ID
 
#redis前后台启动演示
    docker run -it redis:6.0.8  #前台交互式启动
    docker run -d  redis:6.0.8  #后台守护式启动

 

  

  

 

 

 

1
2
3
4
docker logs 容器ID  #查看容器日志
docker top 容器ID  #查看容器内运行的进程
docker inspect 容器ID  #查看容器内部细节
docker exec -it 容器ID bashShell #进入正在运行的容器并以命令行交互

  

 

 

1
2
3
4
5
6
7
8
9
10
11
docker attach 容器ID #重新进入
#attach和exec区别
    #attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器停止
    #exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止,推荐使用docker exec命令,因为退出容器终端,不会导致容器的停止
#用之前的redis容器实例进入
    docker exec -it 容器ID /bin/bash
    docker exec -it 容器ID redis-cli
    #一般用-d后台启动的程序,再用exec进入对应容器的实例
#从容器拷贝文件到主机上
    #容器->主机
    docker cp 容器ID:容器内路径 目的地主机路径  #docker cp ID:/usr/local/mycptest/container.txt /tmp/c.txt

  

 

 

1
2
3
4
5
#导入导出容器
export #导出容器的内容作为一个tar归档文件[对应import命令]
import #从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
docker export 容器ID> 文件名.tar
cat 文件名.tar  | docker import -镜像用户/镜像名:镜像版本号

  

 

 

 

posted @   smatterer  阅读(29)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示