镜像是 Docker 三大核心概念中最重要的 Docker 三大核心:
镜像 容器 仓库 1. 镜像介绍 Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试远程仓库里拉取. 默认为 Docker Hub 仓库.用户也可以自定义镜像仓库.
1.1. 获取镜像 docker pull ubuntu:18.04
如果不指定TAG标签, 则拉取 latest标签, 如上面使用tag: 18.04 镜像文件一般由若干层(layer)组成, 每一层由唯一的ID标记 : 63ca9dsd732a1 (实际完整ID包括 256比特, 64个十六进制字符组成) 当不同镜像包括相同的层, 本地仅存储一份内容. 减少存储空间. 以上ubuntu:18.04 相当于 docker pull registry.hub.docker.com/ubuntu:18.04. 默认注册服务器为 Docker Hub. 有时需要代理服务来加速Docker镜像获取过程. 可能在docker 服务启时配置中增加--registry-mirror=proxy_URL, 如国内: https://registry.docker-cn.com 1.2. 查看镜像 列出本地镜像
docker images
-> # docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql latest ab2f358b8612 5 days ago 545MB redis 5.48天计划表 365天计划表(只显示部分) 下载 https://pan.baidu.com/s/1SNhx_N3mkELewuJdPiOj7w 密码:fdd7基本概念 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 初使化 新建仓库 git init 配置 # 显示全部配置 git config --list # 编辑配置 git config -e [--global] # 设置用户和邮箱 git config [--global] user.name "百里" git config [--global] user.email "freeit@126.com" 拉取 克隆仓库 git clone git@github.com:yezihack/barry.git 克隆指定分支 -b 指定分支名 git clone -b master git@github.com:yezihack/barry.git
分支 查看本地分支 git branch
查看所有远程分支 git branch -r
查看所有分支 git branch -a
创建并切换分支 git checkout -b dev
新建一个分支 git branch dev
切换分支 git checkout dev 合并分支 # 当前分支master, 要将dev分支合并到master分支 git checkout master git merge dev 删除分支 git branch -d dev绿色安装包的概念来自于 win 的概念, 也就是说无需安装即可使用软件. 即为绿色安装包. 在 linux 为了方便, 我们也需要制作绿色安装包, 方便相同系统之间的 copy. 即高效又好用. 何乐不为.
你将了解到 LD_LIBRARY_PATH 的概念 ldd 是什么东西 如何制作绿色安装包 安装 mediainfo 在 CentOS7 192.168.1. 100 机器上操作.
yum -y install mediainfo 制作ldd打包脚本 本脚本用于将 mediainfo 所依赖的动态库或依赖文件都复制出来
文件名:pack.sh
#!/bin/bash set +x # 需要打包的命令全路径 file_path=$1 # 需要复制的目录 target_dir=$2 # check file path if [ ! -f $file_path ];then echo "$file_path is not file" exit 0 fi # 判断目录是否为空 if [ -z $target_dir ]; then echo "target_dir is null" exit 0 fi # 目录不存在,自动创建 if [ !快捷安装 nginx CentOS 安装
yum -y install nginx 源码安装
# 下载, 解包 wget http://nginx.org/download/nginx-1.19.4.tar.gz && tar -zxvf nginx-1.19.4.tar.gz && cd nginx-1.19.4 # 编译安装 ./configure --prefix=/usr/local/nginx --without-http_rewrite_module make && make install # 建立软链 ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ 配置静态服务器 yum 安装的配置文件目录在 /etc/nginx
手动安装目录在: /usr/local/nginx
关键参数配置
root /data/wwwroot/;# 指向你的文件目录 autoindex on;# 显示目录 autoindex_exact_size on;# 显示文件大小 autoindex_localtime on;# 显示文件时间 yum 安装方式配置
vim /etc/nginx/nginx.conf 手动安装方式配置
vim /usr/local/nginx/conf/nginx.conf 可以找到默认的 server {}
server { listen 80 default_server; listen [::]:80 default_server; server_name _; #root /usr/share/nginx/html; root /data/wwwroot/; autoindex on;# 显示目录 autoindex_exact_size on;# 显示文件大小 autoindex_localtime on;# 显示文件时间 # Load configuration files for the default server block..1. 概述 .2. 安装 nginx-module-vts 模块 .2.1. 下载 nginx-module-vts 模块文件 .2.2. 重新编译 nginx .2.3. 配置 server 信息 .3. 安装 nginx-vts-exporter .3.1. 下载软件 .3.2. 解压&安装 .3.3. 制作 systemctl .3.4. 管理 nginx-exporter .3.5. 查看 metrics .4. 添加到 prometheus 数据源 .5. MySQL Over 图表安装 .1. 概述 Prometheus 监控 nginx 需要用到两个模块
nginx-module-vts 主要用于收集 nginx 各项指标.能提供 json 数据 nginx-vts-exporter 向 prometheus 提供可以识别的数据结构 .2. 安装 nginx-module-vts 模块 需要对 nginx 进行重新编译, 对于正在运行的 nginx 需要热启动, 谨慎操作.
.2.1. 下载 nginx-module-vts 模块文件 cd /usr/local/src git clone https://github.快捷进入容器内部命令.只需要填写容器ID即可. enter containerID
脚本 创建 /usr/bin/enter文件
touch /usr/bin/enter && chmod +x /usr/bin/enter enter 文件内容
#!/bin/sh if [ -e $(dirname "$0")/nsenter ]; then # with boot2docker, nsenter is not in the PATH but it is in the same folder NSENTER=$(dirname "$0")/nsenter else NSENTER=nsenter fi if [ -z "$1" ]; then echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]" echo "" echo "Enters the Docker CONTAINER and executes the specified COMMAND." echo "If COMMAND is not specified, runs an interactive shell in CONTAINER..1. 容器管理 .1.1. 容器运行 .1.2. 查看容器 .1.3. 查看容器日志 .1.4. 容器删除 .1.5. 查看容器系统资源信息 .1.6. 容器内部命令 .1.7. 复制文件相互 .2. 导入导出容器 .2.1. 导出容器 .2.2. 导入容器 .3. 重启启动 .3.1. 系统开机启动 .3.2. 容器开机启动 .4. 多容器管理 .4.1. Docker Compose .4.2. docker-compose 安装 .4.2.1. 启动/停止 .4.2.2. 操作指定文件yml的容器 .5. 参考 Docker 倡导的理念是: “一个容器一个进程”
容器是镜像运行的一个实例
它们的区别是镜像是一个静态只读文件, 而容器是一个运行时可写的文件层.
.1. 容器管理 dockerID 是由128位组成, 前16位保证唯一. docker ps --no-trunc
.1.1. 容器运行 基本命令: docker run
例docker run --name db --env MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mariadb.1. Docker 三大基础组件 .2. Docker 指令 Docker 三大基础组件 三个重要的概念
仓库(Repository) 镜像(Image) 容器(Container) 实例命令: docker run --name db --env MYSQL_ROOT_PASSWORD=sgfoot.com -d mariadb
先在本机查找有没有 mariadb 镜像, 如果没有,就到 docker 的仓库查找 mariadb 镜像, 然后下载到本机 基本 mariadb 镜像创建容器 db, 提供 mysql 服务 然后通过 docker ps 查看正在运行的容器. Docker 指令 基本命令格式如下: docker + command(如run, ps) + 一系列参数(args...) 如: docker run --name db --env MYSQL_ROOT_PASSWORD=sgfoot.com -d mariadb
命令帮助 docker command --help
如: docker run --help
命令分四大类 系统资源设置和全局信息获取: docker info, docker system df Docker 仓库查询, 下载操作:docker search, docker pull Docker 镜像查询,创建,删除操作: docker images, docker build, docker rmi Docker 容器查询,创建,开启,停止,删除,详情操作:docker ps, docker run, docker start, docker stop, docker rm, docker inspect Docker 调试: docker logs(日志), docker stats(运行状态) 其它: 删除所有停止运行的容器 docker rm $(docker ps -a -q) (危险操作)前面教程介绍过 docker 是 c/s 模式, 通过 client 命令 与 server 端进行交互, docker 有着强大的命令系统, 我们需要系统学习下.
基础的命令 查看版本 docker version
查看 docker 信息 会显示多少镜像,容器, 运行中,暂停中, 停止的容器数量, cpu, memory, system等信息
docker info
容器操作 下载仓库 docker pull centos
运行容器 docker run -it centos /bin/bash
docker run -it
-i 交互式操作 -t 终端 centos 镜像 /bin/bash 交互使用/bin/bash模式 查看容器 docker ps 查看正在运行的容器
docker ps -a 查看所有容器,包括运行中,停止和暂停的容器
启动指定ID的容器 docker start ID 支持3位数操作.
停止容器 docker stop ID
暂停容器 docker pause ID