Docker

1、简介


  • Docker

  • 是一个容器运行载体或称之为管理引擎

  • 把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件

  • 只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。

  • 镜像

  • 只读的模板(类似java中的类模板)

  • 用来创建Docker容器

  • 相当于一个root文件系统

  • 一个镜像可创建多个容器

  • 容器

  • 用镜像创建的运行实例(类似java中new出来的实例对象)

  • 可看作一个简易版的Linux环境(只包含最内核的Linux文件)和运行在其中的应用程序

  • 一个容器运行一种服务,需要的时候,可通过docker客户端创建一个运行实例,即容器

  • 仓库

  • 用于集中存放镜像文件,类似Maven仓库,存放各种jar包

  • 把镜像发布到仓库中,需要的时候从仓库拉下来即可

2、安装


  • yum安装gcc

  • yum -y install gcc

  • yum -y install gcc-c++

  • 安装软件包

  • yum install -y yum-utils

  • 安装镜像仓库

  • 更新yum软件包索引

  • yum makecache fast

  • 安装Docker CE

  • yum -y install docker-ce docker-ce-cli containerd.io

  • 启动Docker

  • systemctl start docker

  • 测试

  • docker run hello-world

  • 查看docker版本

  • docker version

  • 配置阿里云镜像加速器

  • mkdir -p /etc/docker

  • systemctl daemon-reload

  • systemctl restart docker

  • 卸载

  • systemctl stop docker

  • yum remove docker-ce docker-ce-cli containerd.io

  • rm -rf /var/lib/docker

  • rm -rf /var/lib/containerd

3、执行流程


4、启动类命令


  • 启动docker:systemctl start docker

  • 停止docker:systemctl stop docker

  • 重启docker:systemctl restart docker

  • 查看docker状态:systemctl status socker

  • 设置开机启动:systemctl enable docker

  • 查看docker概要信息:docker info

  • 查看docker帮助:docker --help

  • 查看docker命令帮助文档:docker 命令 --help

5、镜像命令


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

  • 镜像仓库名 镜像标签版本号 镜像ID 镜像创建时间 镜像大小

  • -a:列出本地所有镜像,包含历史映像层

  • -q:只显示镜像ID

  • 同一仓库源可有多个版本(比如mysql有5.7和8.0),若不指定版本,默认使用最新版本

  • 查找镜像:docker search 镜像名

  • 镜像名 镜像说明 点赞数 是否官方 是否自动构建

  • --limit N:只列出前N个镜像

  • 下载镜像:docker pull 镜像名 [版本号]

  • 若不指定版本,默认使用最新版本

  • 删除镜像:docker rmi [-f] 镜像名1/镜像ID1 镜像名2/镜像ID2

  • -f:强制删除

  • 删除全部镜像:docker rmi -f $(docker images -qa)

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

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

6、容器命令


  • 新建并启动容器:docker run [OPTIONS] 镜像名 [:版本号]

  • --name="容器名":为容器指定名称

  • -d:后台运行容器并返回容器ID,也即启动守护式容器(后台运行),常用

  • -i:以交互式模式运行容器,通常与-t同时使用

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

  • -P:随机端口映射

  • -p:指定端口映射

  • 在镜像名后使用 /bin/bash,表示使用交互式Shell

  • 列出所有正在运行的容器:docker ps [OPTIONS]

  • -a:列出当前所有正在运行的容器+历史运行过的

  • -l:列出最近创建的容器

  • -n N:列出最近N个创建的容器

  • -q:静默模式,只显示容器编号

  • 退出容器:exit容器停止,ctrl+p+q不停止

  • 启动已停止的容器:docker start 容器ID/容器名

  • 重启容器:docker restart 容器ID/容器名

  • 停止容器:docker stop 容器ID/容器名

  • 强制停止容器:docker kill 容器ID/容器名

  • 删除已停止的容器:docker rm 容器ID

  • 删除所有容器:docker rm -f $(docker ps -a -q)

  • 查看容器日志:docker logs 容器ID

  • 查看容器内运行的进程:docker top 容器ID

  • 查看容器内部细节:docker inspect 容器ID

  • 重新进入容器

  • docker exec -it 容器ID /bin/bash

  • 在容器中打开新的终端,并可以启动新的进程退出

  • 用exit退出,不会导致容器停止(推荐)

  • docker attach 容器ID /bin/bash

  • 直接进入容器启动命令的终端,不会启动新的进程

  • 用exit退出,会导致容器停止

  • 从容器拷贝文件到主机:docker cp 容器ID:容器内路径 目的主机路径

  • 导入容器:cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

  • 导出容器:docker export 容器ID > 文件名.tar

7、容器数据卷


  • 开启数据卷

  • 主要命令:--privileged=true

  • 开启redis并开启数据卷:docker run -p 6379:6379 --name redis1 --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data: /data -d redis:6.0.8 redis-server /etc/redis/redis.conf

  • 修改/app/redis/redis.conf会自动同步到/etc/redis/redis.conf中

  • 修改/app/redis/data会自动同步到/data中

  • 数据卷可在容器间共享或重用数据

  • 卷中的更改可实时生效

  • 数据卷中的更改不会包含在镜像的更新中

  • 数据卷的声明周期一直持续到没有容器使用它为止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值