1.1 架构:
镜像(Image):相当于一个root文件系统。
容器(Container):镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):保存镜像。
Docker容器通过Docker镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。(容器:对象,镜像:类)
1.2安装:
使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
设置仓库:
阿里云
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.3 基本常用命令:
安装依赖包:yum install -y epel-release
安装docker:yum install -y docker -io
或者 curl -sSL https://get.daocloud.io/docker | sh (一键安装)
docker 帮助命令:docker info 或者docker version //查看版本等相关信息
镜像命令:docker images //列出本地主机上的镜像
-a 列出所有的镜像
-q 只显示镜像ID
--digests 显示镜像的摘要信息
--no-trunc 显示镜像的完整信息
docker search [选项] 镜像名 //镜像查找
--no-trunc 显示镜像的完整信息
-S 列出收藏数不小于指定值的镜像 //可能版本有差异,新版本无此参数
docker pull 镜像名:版本号 //下载镜像,不写版本号就默认下载最新版
dcoker rmi 镜像名/id //删除镜像
-f 强制删除
举例:
删除单个镜像:docker rmi -f 镜像ID
删除多个镜像:docker rmi -f 镜像名1 镜像名2 //镜像名之间用空格隔开
删除全部镜像:docker rmi -f $(docker images -qa) //有容器运行中的镜像删除不了,需要停止容器才能删除。
容器命令:
docker pull centos //有镜像才能创建容器,先拉取镜像
docker run [option] images [command].... //新建并启动容器
option:
--name //为容器指定一个名称
-d //后台运行容器并返回容器ID(即启动守护容器)
-i // 以交互模式运行容器,通常与-t同时使用
-t //为容器重新分配一个伪输入终端
-P //随机端口映射
-p //指定端口映射
ip:hostport:container port
ip::container port
hsotport:container port
container port
docker ps [opstion] //宿主机上运行,列出当前正在运行的所有容器
-a //列出当前所有正在运行的容器,包括历史上运行过的
-l //显示最近创建的容器
-n // 显示最近创建的n个容器
-q //静默模式,只显示容器编号
--no-trunc //不截断的输出
exit //容器停止退出
Ctrl+P+Q //不停止退出 ,使用docker attach 容器ID重新进入
docker start 容器ID/容器名 //启动容器
docker restart 容器ID/容器名 //重启容器
docker stop 容器ID/容器名 //停止容器 ,强制停止用Kill
docker rm 容器ID
-f 强制删除
举例:docker rm -f $(docker ps -a -q) 或 docker ps -a -q | xargs docker rm
docker run -d 容器名 //启动后docker ps 查不到,进程会自动被杀掉,这是机制,除 非有应用在运行。
docker logs -f -t --tail 容器ID //查看容器日志, -t 加入时间戳,-f 跟随最新的日志打 印,--tail 数字,显示最后多少条
docker top 容器ID //查看容器内运行的进程
docker inspect 容器ID //查看容器内部细节
docker attach 容器ID // Ctrl+P+Q后进入正在运行的容器并以命令行交互,守护进程勇该命令会卡住,需要用exec -it,如下
docker exec 容器ID ls -l /root //在宿主机上对容器进行操作 ,不用进到容器(在容器中打开新的终端,并且启动新的进程)
例:docker exec -it 容器ID /bin.bash //加上-it 会等容器内的操作执行完毕,而bash 是打开容器内的一个终端近程,又因为it的等待 所以就会一直以终端连接的方式停留在容器内部。
docker cp 容器ID : 容器内路径 目的主机路径 //从容器内拷贝文件到主机上
例:docker cp 容器ID: /root/zhuli.txt /root/AA.txt //从容器的/root目录下拷贝zhuli.txt 到 宿主机的/root下并重命名为AA.txt
-----学习记录,有误的地方辛苦帮忙指正,涉及侵权的话烦请联系删除,谢谢!