• docker 常用命令和参数


    docker run

    参数含义
    -i表示交互式运行容器
    -t表示容器启动后会进入命令行。加上-it后,容器创建后就会分配一个伪终端
    –name为创建的容器命名
    -v表示目录映射关系或者容器卷
    使用方式为 -v 宿主机路径/卷名:容器路径:选项列表
    如果是宿主机路径,必须使用绝对路径。选项列表可以ro/rw
    可以使用多个-v做多个目录或文件映射。
    注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
    -p–public,表示端口映射,前者是宿主机端口,后者是容器内的映射端口。
    可以使用多个-p做多个端口映射
    -d创建一个守护式容器在后台运行
    –rm容器退出后即被删除。默认情况下,退出的容器并不会立即删除。在测试时,这个参数很有用,可以避免浪费空间。
    –gpus等于all时,可以使用宿主机上所有的GPU显卡。对于docker 18之前的版本,用nvidia-docker命令来使用GPU

    快捷查询

    实现目标docker命令
    退出容器同时终止容器运行exit或者ctr+d
    退出容器但是不终止容器运行ctr+p+q
    在容器外终止容器运行docker stop
    重启容器docker restart
    查看运行中的容器docker ps
    查看所有容器,包括已经停止运行的docker ps -a
    删除容器docker rm 容器名字/id
    删除镜像docker rmi imagename
    查看docker镜像是如何build的
    我一般会用这个命令查看最后一条cmd命令,也就是docker的启动命令。
    docker history
    在运行的容器中执行命令docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
    连接到正在运行的容器docker attach [OPTIONS] CONTAINER
    将容器保存为镜像docker commit [选项] [容器ID或容器名] [仓库名:标签]

    命令具体说明

    在运行的容器中执行命令

    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    
    • 1

    以下示例以交互式的方式进入ubuntu容器,其中bash是执行的command,打开一个交互式的shell。

    docker exec -it ubuntu bash
    
    • 1

    用这种方式进入容器后用exit或者ctr+d的方式退出,并不会终止原容器的运行,但是docker attach会。

    连接到正在运行的容器

    docker attach [OPTIONS] CONTAINER
    
    • 1

    要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕(与screen命令的attach类似)。

    官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。这不是我们想要的,detach的意思按理应该是脱离容器终端,但容器依然运行。好在attach是可以带上–sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。

    将容器保存为镜像

    保存的格式:

    docker commit [选项] [容器ID或容器名]  [仓库名:标签]
    
    • 1

    例子:

    docker commit -a 'weikaixxxxxx' -m '导入了数据库' 9adeb5943045  mysql:v2
    
    • 1

    其中:
    -a: 修改人
    -m: 备注

    docker服务启动、重启、关闭

    启动systemctl start docker
    守护进程重启systemctl daemon-reload
    重启docker服务systemctl restart docker
    重启docker服务service docker restart
    关闭dockerservice docker stop
    关闭dockersystemctl stop docker
  • 相关阅读:
    Linux动态追踪——ftrace
    Java之反射机制
    智能合约 | solidity必会的开发技巧2--合约升级(修改合约功能)
    【算法】Hidden in Plain Sight
    R语言使用dietaryindex包计算NHANES数据多种健康饮食指数 (HEI等)(1)
    打印机修复脚本
    郑州分销系统开发|电商行业能做分销系统吗?
    试过了,ChatGPT确实不用注册就可以使用了!
    『互联网架构』kafka发展历程和安装部署
    互联网食堂大比拼,谁才是互联网养猪场?
  • 原文地址:https://blog.csdn.net/weixin_39925939/article/details/125319504