Loading... **1. 帮助命令** ```bash # 显示docker的版本信息。 docker version # 显示docker的版本信息。 docker info # 帮助命令 docker 命令 --help ``` **2. 镜像命令** ```bash # 查看所有本地主机上的镜像 docker images docker search #搜索镜像 docker pull #下载镜像 eg:docker pull nginx docker images -aq #显示所有的镜像id -a显示所有镜像 -q只显示id docker images -f # 参考下面的ps -f的命令 #删除镜像 docker rmi ~ docker rmi -f 镜像id #删除指定的镜像 ~ docker rmi -f 镜像id 镜像id 镜像id #删除指定的镜像 ~ docker rmi -f $(docker images -aq) #删除全部的镜像 ``` **3. 容器命令** ```bash docker run 镜像id #新建容器并启动 docker ps #列出所有正在运行的容器 -> docker container list docker rm 容器id #删除指定容器 docker start 容器id #启动容器 docker restart 容器id #重启容器 docker stop 容器id #停止当前正在运行的容器 docker kill 容器id #强制停止当前容器 ``` **a. 容器ps命令详解** ```bash docker ps -n 3 #显示最后被创建的3个容器 这里不限状态 docker ps -l #显示最后被创建的容器 相当于 docker ps -n 1 docker ps --no-trunc #完整的显示 正常容器id是很长的 docker ps -s #显示容器文件大小 docker ps --filter id=a1b2c3 --filter name=demo #过滤容器id包含a1b2c3和name包含demo的容器 # id 和 name,支持正则表达式,使用起来非常灵活 docker ps --filter name=^/demo$ #精确匹配name为demo的容器 docker ps --filter name=.*de.* #匹配 name 包含de的容器 # 当使用了 --format 选项,那么 ps 命令只会输出 template 中指定的内容 docker ps --format "<ruby>.ID}}<rp> (</rp><rt>{{.Command</rt><rp>) </rp></ruby>" #只显示容器id和启动容器时运行的命令 # 如果想带上表格列头,需要再 template 中加上 table 指令 docker ps --format "table <ruby>.ID}}<rp> (</rp><rt>{{.Command</rt><rp>) </rp></ruby>" ``` <div class="tip inlineBlock info"> 1. 容器的状态共有七种:created|restarting|running|removing|paused|exited|dead(创建|重新启动|运行|删除|暂停|退出|死亡) 2. 执行docker ps. 发现后台没有centos容器在运行。常见的坑,docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止。 3. nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了。 </div> **b.run 命令** 该模块摘抄至<span class="external-link"><a class="no-external-link" href="https://www.cnblogs.com/shijunjie/p/10488603.html" target="_blank"><i data-feather="external-link"></i>海兵的正义</a></span>,主要为了加深印象 ```shell -d, --detach=false,指定容器运行于前台还是后台,默认false -i, --interactive=false, 打开STDIN(终端的标准输入),用于控制台交互 -t, --tty=false, 分配tty设备(虚拟控制台),该可以支持终端登陆,默认false -u, --user="",指定容器的用户 -a, --attach=[],登陆容器(必须是以docker run -d启动的容器) -w, --workdir="",制定容器的工作目录 -c, --cpu-shares=0,设置容器CPU权重,在CPU共享场景使用 -e,--env=[],指定环境变量,容器中可以使用该环境变量 -m, --memory="", 指定容器的内存上限 -P, --publish-all=false, 指定容器暴露的端口 -h, --hostname="", 指定容器的主机名 -v, --volume=[], 给容器挂载存储卷,挂载到容器的某个目录 --cidfile="", 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法 docker run -d --name=centos -v /etc/www:/var/www ubuntu:latest #指定容器内目录与宿主机目录共享 ``` **删除容器** ```bash docker rm 容器id # 删除指定的容器,不能删除正在运行的容器 强制删除使用 rm -rf docker rm -f $(docker ps -aq) #删除所有指定的容器 docker ps -a -q|xargs docker rm #删除所有的容器 ``` **5. 常用其他命令** ```bash docker build # 通过Dockerfile定制镜像 ~ commit # 提交当前容器为新的镜像 ~ cp # 拷贝文件 ~ create # 创建一个新的容器 ~ diff # 查看docker容器的变化 ~ events # 从服务获取容器实时时间 ~ exec # 在运行中的容器上运行命令 ~ export # 导出容器文件系统作为一个tar归档文件[对应import] ~ history # 展示一个镜像形成历史 ~ import # 从tar包中导入内容创建一个文件系统镜像 ~ load # 从一个tar包或标准输入中加载一个镜像[对应save] ~ login # 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub ~ logout # 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub ~ logs # 查看docker运行日志 ~ pause # 暂停容器中所有的进程 ~ unpause # 恢复容器中所有的进程 ~ rename # Docker 将容器重命名 docker rename 原容器名称 新容器名称 ~ save # 将指定镜像保存成 tar 归档文件。 ~ top # 查看容器中运行的进程信息,支持 ps 命令参数。 ~ update # 更新容器参数 ~ wait # 阻塞运行直到容器停止,然后打印出它的退出代码。 ``` **docker commit 详情** 从容器创建一个新的镜像 <div class="tip inlineBlock info"> - --author , -a 提交的镜像作者; - --change , -c 使用Dockerfile指令来创建镜像; - --message , -m 提交时的说明文字; - --pause , -p 在commit时,将容器暂停 <a style="color:red">默认true</a>。 </div> ```bash docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1 docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' -c "EXPOSE 80" a404c6c174a2 ymysql:v1 ``` 最后修改:2021 年 06 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 社会很单纯~复杂滴是人呐~谁能在乎我呀