Docker常用命令

Docker工作原理:

工作原理
工作流程
理解技巧:镜像是模板,容器是实例,镜像类似于Java的类,容器就是类对象new出来的实例。

百度云脑图下载:链接:https://pan.baidu.com/s/11ts5nkdlyFed1fxbFymwtw
提取码:oyzm

一.帮助启动类命令:

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命令帮助文档

二.镜像命令:

1.查看本地镜像

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

options说明: -a: 列出本地所有的镜像(包括历史映像层)
              -q: 只显示镜像ID

docker images结果解析
2.搜索镜像

docker search 某个XXX镜像名字

option说明: --limit:只列出N个镜像,默认25个
             docker search --limit 5 redis #只列出前5个redis,一般选第一个官方的即可
           

docker search 结果解析
3.下载镜像到本地

docker pull 镜像名字[:TAG]  #拉取指定版本号的镜像到本地,TAG是docker search后得到的,不加TAG就是默认拉取最新版本

docker pull redis # 拉取redis,默认最新
docker pull redis:6.0.8 #指定拉取6.0.8版本redis

4.查看docker的东西占用内存空间

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

docker system df结果

5.删除镜像

docker rmi 某个xxx镜像名字  #删除指定名字的本地镜像
docker rmi 某个镜像XXX的ID #删除指定镜像ID的镜像

删除单个:docker rmi -f 镜像ID  # 加-f强制删除
删除多个:docker rmi -f 镜像名1:TAG 镜像名2:TAG  或  docker rmi -f 镜像ID1 镜像ID2 镜像ID3
删除全部:docker rmi -f $(docker images -qa)

虚悬镜像建议删除:docker images后出来的镜像中仓库名和标签都是none的镜像
在这里插入图片描述

三.容器命令:

1.启动容器

docker run [options] IMAGE [其他命令] [其他参数]  #启动容器

options说明(常用):有些是一个减号,有些是两个减号
--name='容器新名字' :为容器指定一个名称
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)

-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端,通常与i同时使用;
也即启动交互式容器(前台有伪终端,等待交互)

-P:随机端口映射,大写P
-p:指定端口映射,小写p


启动交互式容器(前台命令行)docker run -it --name=mycentos centos /bin/bash # 使用镜像centos:latest以交互模式启动一个容器,指定容器名字叫mycentos,并在容器内执行/bin/bash命令;-i是交互模式,-t是终端。

外部访问redis时,先通过docke端口映射获得里面的redis暴漏的端口,然后对应起来:
端口映射
2.查看容器

docker ps [options]  #显示当前正运行的容器

options说明:-a :列出当前所有正在运行的容器+历史上运行过的。
             -l: 显示最近创建的容器。
             -n: 显示最近n个创建的容器。
             -q: 静默模式,只显示容器编号。

docker ps -aq

3.退出容器

!!!输入exit回车退出交互模式,容器会停止,按ctrl+p+q退出交互模式,容器不会停止!!!

4.启动已经停止的容器

docker start 容器ID或容器名

5.重启容器

docker restart 容器ID或容器名

6.停止容器

docker stop 容器ID或容器名

7.强制停止容器

docker kill 容器ID或容器名

8.删除’已经停止的’容器

docker rm 容器ID或容器名  #如果容器正在运行,则无法删除,需要先停止或者加-f强制删

docker rm -f $(docker ps -a -q) #一次性删除多个容器实例
docker ps -a -q | xargs docker rm #xargs是linux可变参数,左边值传给xargs,然后xargs再传到右边的命令

9.容器重点注意!!!

a.启动容器:docke run -d 容器名/容器ID #如果没有前台进程的不能用这个方式启动,一般MySQL、redis、nginx等有前台进程需要用这种方式启动,否则用-it的方式启动,如果退出交互模式后容器也会停止。

redis前后台启动演示: 前台交互启动:docker run -it redis  /bin/bash---->退出交互模式后容器也会停止,docker ps没东西
                      后台守护式启动:docker run -d redis -----> 启动后再进入交互模式就行:docker exec -it 容器ID /bin/bash   


b.查看容器日志
docker log 容器ID  :比如启动redis失败,可以用这个命令查看启动时的出错日志


c.每个容器都可以看作是一个简易版的Linux环境(包括root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。
docker top 容器ID  #查看容器内正在运行的进程
docker inspect 容器ID #查看容器内部细节信息

d.后台守护式启动的容器,重新进入交互模式
docker exec -it 容器ID /bin/bash   #在容器中打开新的终端,并且可以重新启动新的进程,用exit退出不会导致容器停止
docker attach -it 容器ID  #直接进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器停止
推荐用第一种方式进入交互模式

e.容器内拷贝文件到主机
docker cp 容器ID:容器内路径 目标主机路径  # 把容器的文件拷贝到目的主机,避免容器被删除后里面的重要资料丢失,相当于备份

f.导出和导入容器
docker export 容器ID > 文件名.tar # 把整个容器备份成tar文件,当前路径下

docker cat 容器文件名.tar | docker import - 镜像用户/镜像名:镜像版本号  #import从tar包中的内容创建一个新的文件系统再导入为镜像

注意

四.commit命令,提交容器副本使之成为一个新的镜像

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]

案例演示:ubuntu安装vim
1.从Hub上下载Ubuntu镜像到本地并成功运行
2.原始的默认Ubuntu镜像是不带vim命令的
3.外网连通的情况下,安装vim
4.安装完后commit我们自己的新镜像
5.启动我们的新镜像,里面是带有vim命令的

docker pull ubuntu
docker run -it ubuntu /bin/bash  #下载并运行Ubuntu
apt-get update #先更新下载工具
apt-get -y install vim       #运行在Ubuntu里面安装vim工具
**安装完不要用exit退出Ubuntu,不然容器也会停止,用ctrl+q+p退出,让Ubuntu容器继续后台运行**
docker ps  #得到上面已经安装好了vim的Ubuntu容器的id
执行commit命令生成自己的新镜像
docker commit -m="安装了vim工具" -a="李先生" 31cee62cf2fe myunbuntu:1.1.0

最终结果

五.镜像分层概念

镜像是什么
联合文件系统
镜像分层概念
在这里插入图片描述
上述commit命令的使用案例可以说明

docker常用命令图解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值