docker日常使用命令及理解

docker安装

环境:centos7
官网中文安装手册:官网中文安装手册
yum 安装gcc相关
yum -y install gcc
yum -y install gcc-c++
安装需要的软件包:
yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
安装docker(我安装ce版不行会报错)
yum -y install docker-ce(安装ce版)
yum install docker(博主直接使用这个命令安装成功)(二选一)
启动docker
systemctl start docker
测试是否成功
docker version

帮助命令:

docker version
docker info
docker --help

镜像命令

docker images

作用:查看本机镜像
在这里插入图片描述
在这里插入图片描述
docker images-a列出本地所有镜像
docker images-q只显示镜像ID
docker images–digests显示镜像的摘要信息
docker images–no-trunc显示完整的镜像信息

docker search 某个镜像名字

作用:查看所有镜像
在这里插入图片描述
docker search --no-trunc:新鲜事完整的镜像描述
docker search -s:列出收藏数小于指定值的镜像
docker search --automated :只列出automated build类型的镜像

docker pull 某个镜像名

作用:下载镜像
docker pull 镜像名

删除镜像

删除单个:docker rmi -f 镜像名
删除多个:docker rmi -f 镜像名 镜像名
删除全部:docker rmi -f $(docker images -qa)

容器命令

前提:需要有centos镜像才能创建容器 docker pull centos
前提

新建并启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS选项说明:
–name=“容器新名字”: 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort

列出当前所有正在运行的容器

docker ps【options】
options说明:
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
–no-trunc :不截断输出。

退出容器(两种方式)
exit:容器停止退出
Ctrl+p+q:容器不停止退出(类似后台进程)
启动容器

docker start 容器名或容器ID

重启容器

docker restart 容器名或容器ID

停止容器

docker stop 容器名或容器ID

强制停止容器

docker kill 容器名或容器ID

删除已停止的容器

docker rm 容器ID

启动守护式容器

docker run -d 容器名

查看容器日志

docker run -d centos /bin/sh -c “while true;do echo xzl;sleep 2;done”
docker logs -f-t–tail
-f:加入时间戳
-t:跟随最新的日志打印
-tail 数值:显示最后多少条

查看容器内运行的进程

docker top 容器ID

查看容器内部细节

docker inspect 容器ID

进入正在运行的容器并命令行交互

docker exec -it 容器ID bashShell
在这里插入图片描述
重新进入docker attach 容器ID
在这里插入图片描述
两者区别
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 是在容器中打开新的终端,并且可以启动新的进程

从容器内拷贝文件到主机上

docker cp 容器ID:容器内路径 目的主机路径

镜像原理

镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件

unionfs(联合文件系统)

unionfs是一种分层,轻量级并且高性能的文件系统,他支持对文件系统的修改作为一次提交来一层层叠加,同时可以将不同的目录挂载到同一个虚拟文件系统下,union是docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像,可以制作具体的应用镜像
特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录

docker镜像加载原理

docker的镜像实际由一层层的文件系统组成,这种层级的文件系统unionfs
linux由bootfs和rootfs组成
bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。
rootfs (root file system) ,在bootfs之上。包含的就是典型 Linux 系统中的 /dev, /proc, /bin, /etc 等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。
平时我们安装进虚拟机的CentOS都是好几个G,为什么docker这里才200M??
对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令、工具和程序库就可以了,因为底层直接用Host的kernel,自己只需要提供 rootfs 就行了。由此可见对于不同的linux发行版, bootfs基本是一致的, rootfs会有差别, 因此不同的发行版可以公用bootfs。

分层的镜像

在pull的时候,就可以在一层层的下载

docker镜像commit操作补充

docker commit提交容器副本使之成为一个新的镜像
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

docker容器数据卷

能干嘛?容器的持久化,容器间继承+共享数据

直接命令添加

创建主机和容器共享目录
docker run -it -v 主机目录:/容器目录 centos
例:docker run -it -v /myDataVolume:/dataVolumeContainer centos
docker run -it -v 主机目录:/容器目录 ro centos
只读不可写

dockerfile
  1. 手动编写一个dockerfile文件,要符合file规范
  2. 有了文件,直接docker build执行,获得一个自定义的镜像
  3. run

docker是什么?

dockerfile是用来构建docker镜像的构建文件,是由一系列命令和参数构成的脚本
构建三步骤
1. 手动编写一个dockerfile文件,要符合file规范
2. 有了文件,直接docker build执行,获得一个自定义的镜像
3. run
FROM:基础镜像
from centos
ENV mypath /tmp
WORKDIR $mypath

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80
CMD /bin/bash
持续更新~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值