大家好,我是辰哥!

上一篇文章(2300+字!在不同系统上安装Docker!)教大家如何在系统上安装docker,今天咱们来学习docker的基本使用。

辰哥将在本文里详细介绍docker的各种使用命令,如:创建容器、拉取镜像、进入容器、搭建环境、退出容器、备份、恢复等。本文讲解了docker使用之后,确保大家都学会了docker,下篇推文将带大家如何去部署自己的python搭建的网站、爬虫程序等操作。’

01、基本命令

docker的操作都是通过命令来完成,linux上直接通过终端来执行即可,在window上咱们使用powershell来执行(powershell是window上的一个命令终端,不仅可以执行window上的命令,还可以执行linux上的命令)。

先介绍几个最基础的命令

1、查看docker版本

docker version

2、查看docker详细信息

docker info

3、查看docker帮助命令

docker --help

02、操作命令

1、查看当前存在的镜像

docker images

这里还可以拉取任何镜像,所以是空的,不过先把大家讲解一下每一个字段的含义

PEPOSITORY:镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小

2、拉取镜像

docker image pull :

或者  docker pull :

演示:拉取python镜像

docker image pull python

再来查看镜像

可以看到拉取的python镜像就已存在了~~~

3、创建并启动容器

docker run -dit --name pythonFirst 镜像id /bin/

以上面创建的python镜像为例,创建容器

docker run -dit --name pythonFirst d92f72c38f7e  /bin/bash

4、查看所有容器信息

docker container ls

或者 docker ps

5、进入容器

docker exec -it /bin/bash

docker exec -it pythonFirst /bin/bash

此外还可以通过容器ID进入容器

docker container -it <容器ID> bash

docker exec -it ba0cd022165c  bash

这两种方式都可以进入容器,接着使用python

实际上这里的容器就是一个带有python环境的linux系统(这是另一个镜像,所有id不一样)

6、退出容器

exit

或者 ctrl+d

7、关闭、启动、重启容器

docker stop <容器ID>

docker start<容器ID>

docker restart<容器ID>

8、删除容器

docker rm  <容器ID>

提醒:在删除日期之前,先确保容器是关闭的,不然无法删除,错误提示如下:

先关闭容器、再删除、最后查看是否删除成功

需要删除所有容器,加上$(docker ps -a -q)

docker rm $(docker ps -a -q)

9、删除镜像

docker rmi <镜像ID>

 docker rmi  d92f72c38f7e

先查看镜像、删除镜像、最后查看是否删除成功

10、查看容器日志

docker logs -f -t --since="日期" --tail=数量 容器id或名称

 docker logs -f -t --since="2021-07-08" --tail=5  pythonFirst

说明:

-f : 查看实时日志

 -t : 查看日志产生的日期

 --since : 即只输出指定日期之后的日志

 --tail=5 : 查看最后的5条日志

03、容器备份和恢复

1、备份容器

docker commit -p <容器ID> 备份命名

先看一下待备份的容器

当前的镜像

开始备份(备份自定义的名称为:chenge_docker_backup)

docker commit -p 50af135a4ba8 chenge_docker_backup

查看镜像

可以看到已经备份成功~~~,接着将备份的镜像导出到本地

 docker save  chenge_docker_backup  >  d:\chenge_docker_backup.tar

这里导出到D盘,并保存为chenge_docker_backup.tar的压缩包。

2、恢复容器

docker load  < 本地容器路径

或者docker load  -i 本地容器路径

在备份之前先把镜像:chenge_docker_backup删除

开始恢复

docker load  -i  d:\chenge_docker_backup.tar

查看镜像,可以看到导入成功,如下:

docker的基本使用介绍就到此结束了!

04 、小结

本文里详细介绍docker的各种使用命令,如:创建容器、拉取镜像、进入容器、搭建环境、退出容器、备份、恢复等。上一篇和这一篇docker的基本使用已经介绍完毕了,相信大家都已经学会了,下一篇直接上Python了,相信docker+python一定很好玩。

一定要动手尝试****!一定要动手尝试****!一定要动手尝试!

Docker学不会?不妨看看这篇文章的更多相关文章

  1. Python RPC 不会?不妨看看这篇文章

    1. 前言 大家好,我是安果! RPC,全程为 Remote Procedure Call,是一种进程间的通信方式,它采用「 服务端 / 客户机 」模式,是一种请求响应模型 其中,服务端负责提供服务程 ...

  2. BuzzSumo:什么样的文章能获得疯转?(基于1亿篇文章大数据分析)

    BuzzSumo:什么样的文章能获得疯转?(基于1亿篇文章大数据分析) 社交媒体追踪服务分析工具BuzzSumo,2014年5月前后对社交媒体上超过1亿篇文章进行了分析,试图找出一个答案: 什么样的内 ...

  3. 理解Python中的装饰器//这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档

    转自:http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html 这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档 ...

  4. 用 Python 分析咪蒙1013篇文章,她凭什么会火?

    咪蒙 文学硕士,驾驭文字能力极强.并且是一个拥有一千多万粉丝,每篇文章阅读量都   100W+,头条发个软文都能赚 80 万,永远都能抓住粉丝G点的那个女人. 1月份因为某篇文章,在网络上被一大批网友 ...

  5. 这篇文章写的真好-NLP将迎来黄金十年-书摘

    机器之心上面微软亚研的这篇文章真好: https://baijiahao.baidu.com/s?id=1618179669909135692&wfr=spider&for=pc 其中 ...

  6. 外国人专门写了一篇文章,来分析为什么go在中国如此火

    外国人专门写了一篇文章,来分析为什么go在中国如此火: <Why is Golang popular in China?> http://herman.asia/why-is-go-pop ...

  7. 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】

    目录 1.什么是类的加载(类初始化) 2.类的生命周期 3.接口的加载过程 4.解开开篇的面试题 5.理解首次主动使用 6.类加载器 7.关于命名空间 8.JVM类加载机制 9.双亲委派模型 10.C ...

  8. 别翻了,这篇文章就是要让你入门java多线程!

    目录 1. 理解线程与进程 2.理解并行和并发 3.特殊的一个单线程:主线程(Main线程) 4. 创建多线程的四种方式 5.使用匿名内部类方式创建线程 6.线程安全问题 7.解决线程安全问题:线程同 ...

  9. JSP还有必要学吗?这篇文章告诉你

    阅读本文大概需要 12.4 分钟. 来源:http://suo.im/4wqRi7 作者:杨明翰 前戏   前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以 ...

随机推荐

  1. nginx版本无缝升级与回滚

    chookie和session 你们公司的会话保持怎么做的? 1.开发做的:记录用户登陆的状态,将用户登陆状态保存到,redis服务器中,nfs,mysql. ​ 记录用户的登陆状态. ​ 通过登陆用 ...

  2. 018.Python迭代器以及map和reduce函数

    一 迭代器 能被next进行调用,并且不断返回下一个值的对象 特征:迭代器会生成惰性序列,它通过计算把值依次的返回,一边循环一边计算而不是一次性得到所有数据 优点:需要数据的时候,一次取一个,可以大大 ...

  3. 11.7 iostat: I/O信息统计

    iostat是I/O statistics(输入/输出统计)的缩写,其主要功能是对系统的磁盘I/O操作进行监视.它的输出主要是显示磁盘读写操作的统计信息,同时也会给出CPU的使用情况.同vmstat命 ...

  4. 第6讲 | 交换机与VLAN:办公室太复杂,我要回学校

    第6讲 | 交换机与VLAN:办公室太复杂,我要回学校 拓扑结构是怎么形成的? 一个交换机肯定不够用,需要多台交换机,交换机之间连接起来,就形成一个稍微复杂的拓扑结构. 如何解决常见的环路问题? 包转 ...

  5. [LeetCode] 1074. 元素和为目标值的子矩阵数量

    矩阵前缀和.因为矩阵中可能包含负值,所以这题肯定不会存在什么剪枝,动态规划的可能性.所以这个题也就没什么弯弯绕绕.个人感觉算不上个Hard题目. 最直观的思路就是枚举子矩阵,既枚举矩阵的左上角节点和右 ...

  6. python实现发送微信消息

    import json from threading import Timer from wxpy import * import requests import urllib.parse def g ...

  7. Django 自定义表名和字段名

    Django 自定义表名和字段名 通过db_table和db_column自定义数据表名和字段名 假如你的数据库里已经有了一张数据表,且该表包含多个字段,你希望通过Django直接访问该数据表的各个字 ...

  8. 微信内 H5 页面自定义分享

    起源: 最近公司在做一个活动的h5页面,在微信内打开时需要进行微信授权,然后后端会重定向到这个页面并且携带了一些参数(openid等).问题是点击微信的原生分享时,会把携带的这些参数一起分享出去,等于 ...

  9. PVD与CVD性能比较

    PVD与CVD性能比较 CVD定义: 通过气态物质的化学反应在衬底上淀积一层薄膜材料的过程. CVD技术特点: 具有淀积温度低.薄膜成分和厚度易于控制.均匀性和重复性好.台阶覆盖优良.适用范围广.设备 ...

  10. ES6中的数组常用方法

    数组在JS中虽然没有函数地位那么高,但是也有着举足轻重的地位,下面我就结合这ES5中的一些常用的方法,与ES6中的一些方法做一些说明和实际用途.大家也可以关注我的微信公众号,蜗牛全栈. 一.ES5中数 ...