文章目录

  • 容器技术 Docker 应用
    • 一、顶级 Volumes
      • 1.配置
      • 2.启动
    • 二、数据卷 挂载
      • 1.配置
      • 2.启动
    • 三、系统限制 sysctls
      • 1.配置
      • 2.启动

容器技术 Docker 应用

1. Dockerfile  # 1 年内 肯定生产上会使用 90%FROM   alpine  # 构建自己镜像的一基础镜像LABEL  key1=value1    # 给镜像添加元数据信息的ADD    src    dist   # 把宿主机的文件,复制到镜像中,并且支持直接解压COPY   src    dist    通上,但是不支持自动解压,官方推荐WORKDIR dir  # 指定了再构建镜像的时候的工作目录(切换执行命令时的当前目录)USER  user_name   # 是指定了在构建镜像过程中执行指令的用户,用户必须存在HEALTHCHECK test CMD 健康检查的 shell 命令  # 用于检查容器内部服务是否健康ONBUILD  COPY  .  /  # 当其他镜像以 此镜像作为基础镜像时,所要执行的命令ENTRYPOINT   /docker-entrypoint.sh   # 执行运行容器时候的默认命令,# 不会被覆盖掉CMD # 执行运行容器时候的默认命令或者参数,会被运行容器时候的命令覆盖掉# ENTRYPOINT  CMD2. docker compose  生产上使用率 40%docker-compose 单机容器编排工具,不能跨主机k8s 多机集群的容器编排工具,可以跨主机docker-compose.yml
属性:
version: "3" # 版本号,不用的版本支持不同的属性
services:redis:  # 声明的服务名,本质上是一个容器image: redis:alpine# build: ./dir   # 指定了构建镜像的 Dockerfile 目录所在的位置ports:- "6379:6379"  # 宿主机端口:容器端口command: redis-server  # 执行的默认命令,一般不需要environment:key1: value1KEY2: value2healthcheck:test:  CMD  redis-cli  ping && echo 0 || echo 1interval: 3stimeout: 4sretries: 3networks:- net1- net2networks:net1:net2:

一、顶级 Volumes

映射本地目录到容器目录下

1.配置

[root@Docker ~]# mkdir volumes
[root@Docker ~]# cd volumes/
[root@Docker volumes]# vim docker-compose.yml
[root@Docker volumes]# cat docker-compose.yml
version: "3.8"
services:web1:image: nginxvolumes:- type: bind # bind volume tmpfilesource: /root/volumes/nginx/index.htmltarget: /usr/share/nginx/html/index.html- type: bindsource: ./nginx/conf/default.conftarget: /etc/nginx/conf.d/default.conf[root@Docker volumes]# mkdir -p nginx/conf
[root@Docker volumes]# vim nginx/index.html
[root@Docker volumes]# cat nginx/index.html
Hello Neko
[root@Docker volumes]# ls
docker-compose.yml  nginx[root@Docker volumes]# docker ps -a
CONTAINER ID   IMAGE            COMMAND                  CREATED      STATUS                    PORTS     NAMES
78a5ad12a07d   nginx            "/docker-entrypoint.…"   2 days ago   Exited (0) 2 days ago               healthcheck_web1_1
[root@Docker volumes]# docker start 78a5ad12a07d
78a5ad12a07d
[root@Docker volumes]# docker cp 78a5ad12a07d:/etc/nginx/conf.d/default.conf .
[root@Docker volumes]# mv default.conf nginx/conf/
[root@Docker volumes]# vim nginx/conf/default.conf
server {listen       8000;server_name  localhost;#charset koi8-r;#access_log  /var/log/nginx/host.access.log  main;...

2.启动

[root@Docker volumes]# docker-compose up -d
Creating volumes_web1_1 ... done
[root@Docker volumes]# docker-compose ps Name                   Command               State   Ports
----------------------------------------------------------------volumes_web1_1   /docker-entrypoint.sh ngin ...   Up      80/tcp[root@Docker volumes]# docker-compose exec web1 bash
root@146364e0c842:/# curl 127.0.0.1:8000
Hello Neko

二、数据卷 挂载

1.配置

[root@Docker volumes]# docker-compose down -v
Stopping volumes_web1_1 ... done
Removing 0087e4120800_volumes_db_1 ... done
Removing volumes_web1_1            ... done
Removing network volumes_default
Removing volume volumes_mysql-data
[root@Docker volumes]# vim docker-compose.yml
[root@Docker volumes]# cat docker-compose.yml
version: "3.8"
services:web1:image: nginxvolumes:- type: bind # bind volume tmpfilesource: /root/volumes/nginx/index.htmltarget: /usr/share/nignx/html/index.html- type: bindsource: ./nginx/conf/default.conftarget: /etc/nginx/conf.d/default.confdb:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: Neko@123volumes:- type: volumesource: mysql-data # 只写定义过的数据卷名称target: /var/lib/mysql/
volumes:# 和定义networks 一样的格式,必须是字典格式mysql-data:

2.启动

[root@Docker volumes]# docker-compose up -d
Creating network "volumes_default" with the default driver
Creating volume "volumes_mysql-data" with default driver
Creating volumes_web1_1 ... done
Creating volumes_db_1   ... done[root@Docker volumes]# docker-compose psName                   Command               State          Ports
-----------------------------------------------------------------------------volumes_db_1     docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp
volumes_web1_1   /docker-entrypoint.sh ngin ...   Up      80/tcp   [root@Docker volumes]# docker volume ls
DRIVER    VOLUME NAME
local     3fbd8f6afdcec11c486019c513121b26ed42334caf0b0e3c762a8bc6c0d88770
local     11d025419296b8ccaeae67385113b46b9230edbb1fb8624b0134b7b22017be6f
local     76b78a5277539b9ada1f16033975cb7a0d8829cef541b1ff5b2ad314f34b9ce8
local     82f4291404beeef9e51e9cb7e3605d2771777a4cedf5cf17b6d06513bd66be83
local     900449a326af023045ef9fa89e3dd6874ca7bf464f6ed0b69862a84938f75ef4
local     aca694cb2beebfbc9af251586277f1bc69c378aa0d399e7af5047873b39eba0b
local     d79295e6910700a3fc4bd99137d3f57a5c13dfe27e0a819a312651cb8d1ff58d
local     mysql-data
local     neko_vol
local     volumes_mysql-data

三、系统限制 sysctls

1.配置

[root@Docker ~]# mkdir sysctls-ulimits
[root@Docker ~]# cd sysctls-ulimits/
[root@Docker sysctls-ulimits]# vim docker-compose.yml
[root@Docker sysctls-ulimits]# cat docker-compose.yml
version: "3.8"
services:web1:image: centosstdin_open: truetty: truesysctls:  # 凡是之前通过 sysctl -w 设置的参数都可以在此设置net.core.somaxconn: 1024ulimits:nproc: 65535nofile:soft: 20000hard: 40000

2.启动

[root@Docker sysctls-ulimits]# docker-compose up -d
Creating network "sysctls-ulimits_default" with the default driver
Creating sysctls-ulimits_web1_1 ... done
[root@Docker sysctls-ulimits]# docker-compose psName             Command    State   Ports
--------------------------------------------------sysctls-ulimits_web1_1   /bin/bash   Up
[root@Docker sysctls-ulimits]# docker-compose exec web1 bash
[root@a59d34556450 /]# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 11216
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 20000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 65535
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

从零开始的Docker [ 7 ] --- 顶级 Volumes,数据卷, 系统限制sysctls相关推荐

  1. Volumes 数据卷管理

    文章目录 4. Volumes 数据卷管理 4.1 Volumes 数据卷的优势 4.2 Volumes 数据卷使用 4.2.1.创建并管理数据卷 1. 创建数据卷 2. 查看数据卷 3. 核查数据卷 ...

  2. docker 安装 基本命令操作 数据卷

    docker 安装 基本命令操作 数据卷 docker docker安装 1.yum 包更新到最新 2.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是d ...

  3. docker入门实践之数据卷管理

    在实际使用docker过程中,有时需要查看容器内应用产生的数据,或需要把容器内的数据进行备份,甚至是多个容器间需要共享数据,这势必涉及到数据管理,那么docker的数据怎么管理呢? 容器中数据管理主要 ...

  4. docker commit镜像以及数据卷技术

    commit镜像 docker commit 提交容器成为一个新的副本# 命令和git类似 docker commit -m='提交的描述信息' -a='作者' 容器id 目标镜像名:[tag] 实战 ...

  5. 【Docker】7、数据卷详解:具名挂载、匿名挂载、初识DockerFile、数据卷容器

    1.什么是容器数据卷? docker的理念回顾 将应用和环境打包成一个镜像! 如果数据都在容器中,那么容器删除,数据就会丢失!需求:数据可以持久化.如:MySQL,容器删除了,MySQL数据可以存储在 ...

  6. Docker的数据管理(数据卷、容器互联)

    一.Docker下的数据管理 1.用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作. 2 ...

  7. docker入门,镜像,容器,数据卷,dockerfile,docker网络,springboot微服务打包docker镜像[狂神yyds]

    docker学习大纲 docker概述 docker安装 docker命令 镜像命令 容器命令 操作命令 - docker镜像 容器数据卷 dockerfile docker网络原理 IDEA整合do ...

  8. 【Docker镜像原理容器数据卷】

    文章目录 Docker镜像原理-commit镜像 一.镜像讲解 二.docker镜像加载原理 UnionFS (联合文件系统): 三.docker镜像分层 四.commit镜像 总结: 容器数据卷 五 ...

  9. Docker镜像、容器数据卷和Dockerfile

    Docker镜像 概述 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. UnionFS ...

最新文章

  1. python第5天模块+包
  2. pte模拟考试_【PTE懒人攻略】如何在7天内通过PTE考试
  3. CODEVS.5037.线段树练习4加强版(分块 区间k的倍数)
  4. XDP(eXpress Data Path)防御DDoS攻击
  5. cf1555 E. Boring Segments
  6. Maven定制化打包后的包名(加入时间戳)
  7. C和混编混合编程----strcpy缓存溢出原理
  8. 大数据下的中国女人,看完惊呆了
  9. antd 能自适应吗_一种能自适应识别母线运行方式的备自投装置应用探讨
  10. 24种设计模式--命令模式【Command Pattern】
  11. another app is currently holding the yum lock;waiting for it to exit...
  12. 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件
  13. 16复变函数的积分(二)
  14. EVERTEC是如何利用大型机帮客户省钱?
  15. 汽车美容4s连锁店会员管理系统【源码分享】
  16. 传统密码学(三)——转轮密码机
  17. Android 跨平台技术对比
  18. ps照片人像油画复古效果怎么做
  19. Spring容器是怎么初始化的?
  20. 屏蔽跑跑卡丁车结束后的广告

热门文章

  1. 桌面上快捷方式变成白框
  2. 披荆斩棘Linux之清理空间
  3. uva11134 -Fabled Rooks
  4. Android viewpager2 + indicator 实现页面滑动
  5. Spring Boot项目出现问题: Whitelabel Error Page
  6. TeamView 商用检测破解
  7. 星淘惠:四川一地获批设立跨境电子商务综合试验区跨境电商再添新砖
  8. Bingo NFT 如何帮助交易者和投资者分析市场
  9. 101. Symmetric Tree (C语言)
  10. Analog circuit----电路耦合、有源/无源滤波电路