docker 容器基本命令和基本原理

本文详细介绍了Docker的核心概念,如容器、镜像、Dockerfile以及如何管理容器,包括启动、停止、资源限制等。此外,还探讨了Docker的守护进程和容器配置文件的设置,以及网络配置和数据存储目录的管理。
摘要由CSDN通过智能技术生成

docker 容器
如果宿主机更改文件 docker需要重启一下加载配置
容器的本质是进程 
docker是一个轻量级虚拟化容器
docker.io docker-hub docker官网与官方库 daocloud国内源仓库
docker带来的优势 标准化发布 节约时间 方便构建基于微服务架构的系统 节约成本 
docker 优势 交付标准化 应用隔离 一次构建多次交付 
docker 隔离性 可度量性 可移植性 安全性 节省存储空间 快速部署 升级方便
容器和vm区别 容器占用体积小 虚拟机占用体积大 容器基于进程的隔离 虚拟机提供了资源的完全隔离 
启动速度容器启动更快 容器使用宿主操作系统的内核 虚拟机使用独立内核 docker局限性之一 只能使用在64位操作系统上
本质区别 容器是被隔离的进程
docker 基本
docker registery 仓库
docker images 镜像
docker containers 容器
namespace 命名空间 容器隔离
cgroups 资源限制
overlay2 文件系统

docker version 查看docker版本详细信息
yum list docker-ce --showduplicates 查看docker版本
docker -v 查看docker版本
--setopt=obsoletes=0 禁止自动更新 与yum配合使用
docker info 查看docker运行状态


运行容器 docker run -itd --name 跟容器命名 -v 本地文件:容器文件(文件映射 类似共享存储 映射目录才能同步更改 映射文件不能同步)-p 本地端口:容器端口(端口映射 本地端口可以自己设置 会自动创建)跟镜像名 跟触发器(/bin/bash 有些小镜像不能用/bin/bash启动 需要用/bin/sh启动或者其他启动)
-i 标准输入输出 -t 分配一个终端或控制台 --restart=always(奥维斯 意思为总是) 容器会跟随docker启动而启动 -d把容器运行于后台 --rm 一次性容器 退出即消失 
docker ps 查看运行的容器    docker ps -a 查看所有容器
ctrl+p+q 退出
docker pull 跟镜像名 下载镜像
mysql 容器创建格式 docker run -itd --name 跟命名 -e MYSQL_ROOT_PASSWORD=设置mysql密码 跟镜像
docker images (因美金s)查看当前docker所有镜像
docker search(色瑞驰 意思为搜索) 跟要搜索的镜像名 搜索镜像
docker inspect(因私百特 意思为检查) 镜像id/镜像名称 查看镜像或者容器详情
docker rmi 跟镜像id或者名 删除镜像 
docker rm 跟容器id或者名 删除容器 加-f为强制删除
docker rmi $(docker images -q)删除所有镜像
查看镜像制作过程 docker history 跟镜像名或id
docker start 容器id或名 启动容器
docker stop 容器id或名 关闭容器 
docker kill 容器id或名 强制终止容器
docker kill $(docker ps -q)  docker stop `docker ps -q` 停止所有容器
docker run -itd 镜像id或名 /bin/bash 后台运行容器
docker rename 旧容器名 新容器名 给容器修改名字
docker stats 跟容器id或名 显示该容器资源的信息实时流


进入容器 docker exec -it 跟容器名或id /bin/bash
不进入容器执行命令 docker exec 跟容器名或id 后跟命令 
docker logs 跟容器名或id 查看容器运行日志 -f可以跟踪日志 手动退出 --tail查看最后几条日志
docker top 跟容器名或id 显示一个运行的容器里的进程信息
nginx wait 跟容器名或者id 捕捉容器停止时的退出码 0正常退出 125docker守护进程出错 126 容器启动后 要执行的默认命令无法调用 127 容器启动后 要执行的默认命令不存在
docker cp 跟选项 容器名:路径 本机路径 从容器拷贝到本机
docker cp 跟选项 本机路径 容器名:路径 从本机拷贝到容器
加 -a 拷贝目录
docker容器镜像打包


容器打包
docker export 容器名称 -o保存到哪里
docker export 容器名称 > 镜像.tar
容器植入 
docker import 容器包 库名/植入后的名称:标签
植入后会变成镜像

把容器提交到本地镜像保存
docker commit 要变成镜像的容器 名称:标签  这个命令可以把正在运行的容器提交成镜像 用于备份容器数据
-m 添加注释 -a 添加作者 -p 提交时容器暂时挂起

镜像迁移 
docker save 镜像 -o 打包后的镜像.tar
docker load < 打包的镜像包      把镜像包植入到本地docker

Dockerfile创建镜像
docker build 命令 根据给定的Dockerfile构建Docker镜像
docker build -t 库名/命名镜像:指定标签 . -f 指定目录
"." 指明 Dockerfile 文件当前目录

FROM 指定镜像为基础镜像
MAINTAINER 指定镜像创建人
RUN 命令在镜像内部执行
WORKDIR 切换工作目录 在这之后 Dockerfile 都是在这个目录下执行
ADD 复制宿主机文件并且解压到容器
EXPOSE 指定容器允许外界访问的端口
ENV 设置环境变量
CMD 启动时添加/bin/bash 会把cmd命令给替换掉
ENTRYPOINT 启动docker时 不会把entpypoint给替换掉 会把后面的命令当成参数或者命令执行 如果需要替换在前面加 --entpypoint=命令 

Docker web ui 应用
docker pull uifd/ui-for-docker
docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker

Docker 资源限制
-c 指定容器的占用cpu资源的比例优先等级 当有其他应用争取cpu的时候时 设置多少 该容器只能占用多少 如果只有一个容器占用该cpu 那该容器不受限制 基准 容器一为-c=1024 容器二为-c=512则为cpu占用率2:1
--cpu 指定该容器最大线程数 (写在命令后面)
--cpus 指定容器cpu最大核数
--cpuset-cpus= 为容器绑定cpu
-m 限制容器内存大小 最小为4m 如果内存消耗占用限制额的两倍 容器会被kill掉
--vm-bytes 当内存撑到多少的时候 不会报错 (写在命令后面)
--vm 生成几个占用内存的进程(写在命令后面)
--vm-hang N 指示每个消耗内存的进程在分配到内存后转入睡眠状态N秒


docker数据存储目录
docker info | grep Root 查看docker数据存储目录
在docker启动命令后跟--data-root=参数指定新位置


docker网络
docker network list 查看当前网络
 bridge 网络桥接 是容器之间的桥接网络 重启只会按照顺序重新获取ip 默认值
 none 无指定网络 --network=none
 host 主机网络 跟主机共用一个ip地址 --net host
 固定ip 为容器创建固定ip/掩码 --subnet=

Docker 的配置文件主要包括两个部分:守护进程配置文件和容器配置文件。下面是它们的详细说明:

1. 守护进程配置文件

守护进程配置文件用于配置 Docker 守护进程的行为和参数。在大多数 Linux 系统上,该文件位于 `/etc/docker/daemon.json`。

以下是一个示例的守护进程配置文件:


{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ],
  "insecure-registries": [
    "registry.example.com:5000"
  ]
}
 

  • - `log-driver`:指定 Docker 日志驱动程序,默认为 `json-file`,可选的还有 `syslog`、`journald` 等。
  • - `log-opts`:用于配置日志驱动程序的选项,例如最大文件大小和最大文件数。
  • - `storage-driver`:指定 Docker 存储驱动程序,默认为 `overlay2`,可根据需要选择其他驱动程序。
  • - `storage-opts`:配置存储驱动程序的选项,例如启用内核检查覆盖等。
  • - `insecure-registries`:指定不受信任的镜像仓库地址,Docker 在拉取和推送镜像时不会验证这些仓库的证书。

请注意,这只是一个示例配置文件,你可以根据自己的需求进行修改和定制。

2. 容器配置文件

容器配置文件用于定义 Docker 容器的属性和行为。当你使用 `docker run` 命令创建容器时,可以通过命令行参数或者使用容器配置文件来指定这些属性。

以下是一个示例的容器配置文件:


version: "3"
services:
  myapp:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - /path/to/local:/var/www/html
    environment:
      - ENV_VAR=value
 

  • - `version`:指定 Docker Compose 文件的版本。
  • - `services`:定义一个或多个服务(容器)。
  • - `image`:指定容器所使用的镜像。
  • - `ports`:映射容器端口到宿主机端口。
  • - `volumes`:挂载宿主机目录或文件到容器内部。
  • - `environment`:设置容器的环境变量。

可以将上述内容保存为一个名为 `docker-compose.yml` 的文件,并使用 `docker-compose up` 命令来创建和启动容器。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值