文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. image运行与删除

  • 运行image
# 命令形式:docker run -ti --rm image$ docker run -ti --rm hello-worldHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker Hub account:https://hub.docker.comFor more examples and ideas, visit:https://docs.docker.com/engine/userguide/

解析:docker run命令,-i是交互模式,-t是提供一个伪终端tty,--rm是在容器退出后自动移除容器。

  • 停用全部运行中的容器:
# 命令形式:docker stop $(docker ps -q)$ docker stop $(docker ps -q)
  • 快速删除docker中的所有容器
# 命令形式:docker rm $(docker ps -aq)$ docker rm $(docker ps -aq)
0da2369cdeb4
961a584288a8
91d90bb91dfc
ece1aeec622f
b99960c42718
5a47d3cd4ed4
0c70e6708f28
ff3e7f1ee98e
efbb943c0cdb
835fd7facf17
b64c8a29ed64
aadf299b179b
  • 快速停止docker容器运行并删除docker中的容器
# 命令形式:docker stop $(docker ps -q) & docker rm $(docker ps -aq)$ docker stop $(docker ps -q) & docker rm $(docker ps -aq)

解析:ps -a显示所有的容器,运行的与停止的,ps -aq显示所有容器的CONTAINER ID$(docker ps -aq)是Linux的命令替换,会将docker ps -aq的结果替换为参数,docker rm CONTAINER ID是删除容器命令。ps -q是显示运行中的容器的CONTAINER ID

2. 制作自己的image

  • 通过commit制造自己的image
# 命令形式:docker commit -m "comment" container_id image_name# 查看已有的容器
$ docker ps -qa
9022a4eeb5d7# 根据容器id制作image
$ docker commit -m "feat: make a copy" 9022a4eeb5d7 test/ubuntu
sha256:************b50641cd172ddb6b508d5cb4df873588ab40f078663c8541

3. 将自己的image推送到dockerhub

# 命令形式:docker push dockerhub_username/image_name$ docker push test/ubuntu
The push refers to a repository [docker.io/***/***]
5918e60ab8d9: Pushed
319daea31eb9: Mounted from ***/***
d41506d13d11: Mounted from ***/***
83747d8dae14: Mounted from ***/***
255752cc6046: Mounted from ***/***
7694b371bada: Mounted from ***/***
06d57711a2de: Mounted from ***/***
fd8ca422aa2a: Mounted from ***/***
79717468825f: Mounted from ***/***
6d1cb131e81a: Mounted from ***/***
374eda78f988: Mounted from ***/***
cf6d1cd028ea: Mounted from ***/***
3d1126efbbe3: Mounted from ***/***
latest: digest: sha256:*******8c0da44f444b4c8f6b6fd37049c25eb537833ab466e366 size: 3037

4. 挂载本地目录到容器中

  • 挂载本机目录到docker容器中
# 命令形式:$ docker run -ti --rm --volume=local_dir:container_dir image_name /bin/bash# 进入本机目录
$ cd CaffeDocker/# 创建文件
$ touch a.txt# 编辑文件
$ vim a.txt# 查看文件内容
$ cat a.txt
test# 挂载
$ docker run -ti --rm --volume=$(pwd):/workspace ***/ubuntu /bin/bash
root@c19af4388af5:/workspace# ls
a.txt# 在容器中删除文件
root@c19af4388af5:/workspace# rm -rf a.txt
root@c19af4388af5:/workspace# ls
root@c19af4388af5:/workspace# exit
exit# 本地文件没了
$ ls

解析:--volume=$(pwd):/workspace是挂载本机目录到容器中,--volume or -v是docker的挂载命令,=$(pwd):/workspace是挂载信息,是将$(pwd)即本机当前目录,:是挂载到哪,/workspace是容器中的目录,就是把容器中的workspace目录换成本机的当前目录,这样就可以在本机与容器之间进行交互了,本机当前目录可以编辑,容器中同时能看到。容器中的workspace目录的修改也直接反应到了本机上。$()是Linux中的命令替换,即将$()中的命令内容替换为参数,pwd是Linux查看当前目录,我的本机当前目录为CaffeDocker--volume=$(pwd):/workspace就等于--volume=/Users/***/CaffeDocker:/workspace/Users/***/CaffeDockerpwd的执行结果,$()是将pwd的执行结果作为参数执行。

5. 启动和停止容器

  • 启动容器
# 命令形式:docker start# 命令形式:docker stop# 查看刚运行过的容器,-l代表last
$ docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                      PORTS               NAMES
f65c25d3bdfa        hello-world         "/hello"            About a minute ago   Exited (0) 55 seconds ago    

6. 启动容器,指定GPU

NV_GPU=1,2,3 nvidia-docker run -ti --rm -v $(pwd):/workspace -e LC_ALL=C.UTF-8 docker.io/nvidia/cuda /bin/bash

Docker理论与实践(四)相关推荐

  1. DDD(Domain Driven Design) 领域驱动设计从理论到实践 四

    - 接上 SOA 架构 ​     面向服务架构(Service Oriented Architecture,SOA)对于不同的人来说意思不同.这里梳理一下SOA原则: 服务契约 : 通过契约文档,服 ...

  2. K8S+Docker理论与实践深度集成

    前言: 这篇文章主要介绍了26道Spring经典面试题总结(附带答案)的相关资料,小编在网上看到的觉得挺不错的,现在分享给大家,希望对你们有所帮助. 另外本人整理收藏了多家公司面试知识点整理 ,以及各 ...

  3. Docker理论与实践(三)

    文章作者:Tyan 博客:noahsnail.com 1. 运行Hello world # 运行Hello world $ docker run ubuntu /bin/echo 'Hello wor ...

  4. Docker理论与实践(二)

    文章作者:Tyan 博客:noahsnail.com 1. Docker命令 # 列出系统中的所有容器 docker ps -a# 结果 CONTAINER ID IMAGE COMMAND CREA ...

  5. WCF从理论到实践(5):Binding细解(转)

    WCF从理论到实践(5):Binding细解 本文的出发点: 通过阅读本文,您能了解以下知识: WCF中的Binding是什么? Binding的组成? Binding Element 的分类? Bi ...

  6. Gradle理论与实践一:Gradle入门

    文章目录 Gradle入门 1.配置Gradle环境 2.Gradle之Hello World 3.gradle 与gradlew的区别 4.Gradle命令介绍 5.Gradle 工作流程 Grad ...

  7. Webrtc从理论到实践七: 官方demo源码走读(peerconnection_server)

    系列文章目录 Webrtc从理论到实践一:初识 Webrtc从理论到实践二: 架构 Webrtc从理论到实践三: 角色 Webrtc从理论到实践四: 通信 Webrtc从理论到实践五: 编译webrt ...

  8. tensorflow 语义slam_研究《视觉SLAM十四讲从理论到实践第2版》PDF代码+《OpenCV+TensorFlow深度学习与计算机视觉实战》PDF代码笔记...

    我们知道随着人工神经网络和深度学习的发展,通过模拟视觉所构建的卷积神经网络模型在图像识别和分类上取得了非常好的效果,借助于深度学习技术的发展,使用人工智能去处理常规劳动,理解语音语义,帮助医学诊断和支 ...

  9. 浅读《视觉SLAM十四讲:从理论到实践》--操作1--初识SLAM

    浅读<视觉SLAM十四讲:从理论到实践>--操作1--初识SLAM 下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/s ...

  10. 视觉SLAM十四讲从理论到实践第二版源码调试笔记(理论基础1-6章)

    2019-2020-2学期机器人工程专业需要开设SLAM技术课程,使用教材为视觉SLAM十四讲从理论到实践第二版. 为方便学生学习课程知识,将Arduino.ROS1.ROS2和SLAM集成到课程定制 ...

最新文章

  1. 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)
  2. QIIME 2用户文档. 5粪菌移植分析练习Fecal microbiota transplant (FMT) study
  3. 三大深度学习生成模型:VAE、GAN及其变种
  4. JavaScript中Promises/A+规范的实现
  5. 加载vue文件步骤_vue中.vue文件解析步骤详解
  6. Jenkins的入门(一)安装
  7. iOS7(+) 图像资源Images Assets使用
  8. P3387-【模板】缩点【tarjan,强联通分量,DAGdp】
  9. html type=text/css,type=text/css 有什么用啊 ?
  10. java学习(127):finally语句
  11. 【离散数学】实验 编写一个简单的三人表决器
  12. 【java SOAP】对SOAP的一个个人印象
  13. 在Silverlight 和WPF中使用预编译指令 if..else..endif (译)
  14. 【数据结构】树状数组
  15. es6学习 http://es6.ruanyifeng.com/
  16. 定制属于自己的自动化安装的linux系统镜像
  17. 30岁,我从前端转型管理成功了
  18. 液压控制系统的simulink搭建
  19. 从5.56*45mm NATO弹看塔科夫的数据严谨性
  20. 如此沙雕的代码注释,原来程序员都是段子手

热门文章

  1. Python-png转换成jpg
  2. 如何将png图像转换成jpg格式呢?
  3. 微信换头像小程序实现原理及源码
  4. 网页显示mysql数据库到表格数据_html表格显示数据库数据
  5. 从0到1:如何创建YouTube频道(手把手设置指南)
  6. 一文盘点中国商业航天:民营火箭的两类瓶颈和三大趋势
  7. 北方经贸杂志北方经贸杂志社北方经贸编辑部2022年第10期目录
  8. win10熄屏时间不对_Win10系统何如设置自动锁屏时间,教程来啦,windows10怎样设置熄屏时间...
  9. 大数据和数据挖掘是什么关系?
  10. 【题解】SCOI-2010-连续攻击游戏