分布式版本管理工具,工作流程:工作区 – 暂存区 – 版本区
1. 安装依赖包
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
2. 安装git
$ apt-get install git
3. 检测安装
$ git --version
1. 安装依赖包
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
2. 安装git
$ yum -y install git-core
3. 检测安装
$ git --version
下载对应版本:https://git-scm.com/download
双击下载的exe文件,一直下一步执行安装
1. 下载源码包:https://git-scm.com/download
2. 安装指定系统的依赖包:
########## Centos/RedHat ##########
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
########## Debian/Ubuntu ##########
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
3. 解压安装下载的源码包:
$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install
官方文档:https://git-scm.com/docs
菜鸟教程:https://www.runoob.com/git/git-tutorial.html
git help - git帮助信息
git cmd --help - git 指令帮助信息
全局配置
git config --global user.name '用户名' - 配置用户名
git config --global user.email '用户邮箱' - 配置用户邮箱
注:在全局文件 C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用
局部配置
git config user.name '用户名' - 配置用户名
git config user.email '用户邮箱' - 配置用户邮箱
注:在当前仓库下的config新建用户信息,只能在当前仓库下使用,一个仓库有局部用户,优先使用局部用户,没有配置再找全局用户
git config --list - 查看配置信息
git init - 初始化当前所在文件夹为本地仓库
git init 仓库名 - 创建文件夹并初始化该本地仓库
git clone 远程地址 - 从远端仓库下载代码
git remote - 查看与远端仓库的远程连接
git remote add 远程名 远程地址 - 与远端仓库建立远程连接
git remote remove 远程名 - 删除与远端仓库的远程连接
git push 远程名 分支名 - 上传代码到远端仓库,上传前先拉代码
git pull 远程名 分支名 - 从远端仓库拉取代码
git status - 查看当前状态,工作区未到暂存区为红色,暂存区未到版本区为绿色,工作区和暂存区都无变化为空
git add . - 将更新的数据提交到暂存区,.表示全部,add后跟文件名,指定文件
git commit -m '注释信息' - 将暂存区的数据提交到版本区
git log - 查看历史详细信息版本,回退后只能查看回退版本前的数据
git reflog - 查看历史简略信息版本,查看所有操作记录
git reset --hard 版本 - 回退到指定版本
git checkout . - 撤销提交到暂存区的处理,.表示全部,add后跟文件名,指定文件
git branch 分支名 - 创建分支
git branch - 查看所有分支
git checkout 分支名 - 切换分支
git checkout -b 分支名 - 创建并切换分支
git branch -d 分支名 - 删除分支
git branch -a 分支名 - 查看远程分支
git merge 分支名 - 合并分支
git tag - 查看所有标签
git tag v1.0 - 创建一个标签
git tag -d v1.0 - 删除一个标签
git show v1.0 - 查看此版本所修改的内容
"""生成ssh公私钥"""
cmd内输入:ssh-keygen -t rsa -C "*@*.com" # 邮箱随意
在此目录下查看公钥:~/.ssh/id_rsa.pub
在github上设置允许公钥读写权限
"""过滤文件"""
# .gitignore 文件
# 1)在仓库根目录下创建该文件
# 2)文件与文件夹均可以被过滤
# 3)文件过滤语法
过滤文件内容
文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
eg:
a.txt:项目中所有a.txt文件和文件夹都会被过滤
/a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
/b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
*x*:名字中有一个x的都会被过滤(*代表0~n个任意字符)
空文件夹不会被提交,空包会被提交,包可以被提交(包中有一个init空文件
Pip 是一个通用的 Python 包管理工具
帮助文档:指令的选项见官网:https://pip.pypa.io/en/stable/cli
语法:
pip <command> [options]
常用指令:
pip install <package> - 安装指定模块
pip install -r requirements.txt - 安装某个文件里的所有模块,格式为:模块名==版本(版本可不写,默认为最新版本,每个模块占一行)
pip uninstall <package> - 卸载指定模块名
pip list - 显示所有模块
pip freeze > requirements.txt - 将所有安装的包倒入requirements文件呢格式为:模块名==版本
pip show <package> - 查看模块信息
Commands:
install <package> - 安装指定包
download <package> - 下载指定包
uninstall <package> - 卸载指定包
show <package> - 显示指定包详细信息
check <package> - 检查指定包的依赖关系是否完整
search - 搜索指定包
freeze - 按着一定格式输出已安装包列表
list - 列出已安装包
config - 管理配置
wheel - 根据需求创建
hash - 计算包的hash值
completion - 辅助命令
help - 帮助信息
清华大学镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/
"""临时换源"""
pip install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple/
"""永久换源"""
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
"""有问题使用以下方法"""
linux:
修改 ~/.pip/pip.conf (没有就创建一个)
# pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
windows:
直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,在pip 目录下新建文件pip.ini,
或者win+R 打开用户目录%HOMEPATH%,在此目录下创建 pip 文件夹,在 pip 目录下创建 pip.ini 文件,
# pip.ini
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
Docker 是一个开源的应用容器引擎
1. 卸载旧版本的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装需要的工具包
sudo yum install -y yum-utils
3.设置镜像仓库
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新软件包
yum makecache fast
5.安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io
6.启动docker
sudo systemctl start docker
7.检测是否成功
docker version
8.卸载
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
1. 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
2. 更新软件包
sudo apt-get update
3. 安装依赖包
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
4. 添加GPG密钥及配置仓库
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable"
5. 安装docker引擎
sudo apt-get install docker-ce docker-ce-cli containerd.io
6.启动docker
sudo systemctl start docker
7.检测是否成功
docker version
8.卸载
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
官方文档:https://docs.docker.com/engine/reference/commandline/docker/
菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html
docker version - 显示版本信息
docker info - 显示系统信息
docker <cmd> --help - 命令帮助信息
镜像信息:
REPOSITORY:镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
cmd:
docker images - 查看主机本地上的镜像
docker search 镜像 - 搜索镜像
docker pull 镜像[:tag] - 下载镜像
docker rmi 镜像ID - 删除镜像
docker tag 镜像ID 镜像名:tag - 设置标签
docker commit -m '描述信息' -a '作者' 容器ID 镜像名:tag - 提交镜像
docker build -t 镜像名 . - 构建镜像
options:
docker images
-a, --all - 列出所有镜像
-q, --quiet - 只显示id
docker search 镜像
-f, --filter filter - 过滤
docker rmi 镜像ID
-a, --all - 列出所有镜像
-q, --quiet - 只显示id
docker build -t 镜像名 .
-t 镜像名:tag - 指定镜像名
-f filename - 指定dockerfile
. - 上下文路径
容器信息:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态:7种状态(created(已创建)restarting(重启中)running 或 Up(运行中)removing(迁移中)paused(暂停)exited(停止)dead(死亡))
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
cmd:
dokcer ps - 产看所有运行的容器
docker stats - 查看容器运行状态
docker stop 容器ID - 停止容器
docker start 容器ID - 启动容器
docker restart 容器ID - 重启容器
docker rm 容器ID - 删除容器
docker kill 容器ID - 强制停止当前容器
docker log 容器ID - 查看容器日志
docker top 容器ID - 查看容器进程信息
docker inspect 容器ID - 产看容器元信息
docker exec -it 容器ID /bin/bash - 进入容器,新开一个terminal
docker attach 容器ID - 进入容器,正在执行的terminal
docker cp 容器ID:容器内路径 外部路径 - 从容器内copy文件出来
docker port 容器ID - 查看容器端口的绑定情况
dokcer export 容器ID > docker.tar - 导出容器
docker import <url路径/文件路径> - 导入容器
docker run 镜像 - 创建并运行容器
docker volume cmd - 查看数据卷详细信息
options:
dokcer ps
-a, --all - 列出所有镜像
-q, --quiet - 只显示id
docker rm 容器ID
-f, --force - 强制删除
docker volume cmd
create - 创建一个数据卷
inspect 数据卷名 - 查看数据卷元数据
ls - 列出所有数据卷
docker run 镜像 /bin/bash
--name 'Name' - 给容器命名
-d - 后台运行
-it - 交互式运行,进入容器内
-p - 指定容器端口
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
-P - 随机指定端口
-v - 挂载数据卷
-v 主机目录:容器目录
-v 容器目录(匿名挂载)
-v name:容器目录(具名挂载)
[:ro/:rw]: 挂载权限,ro只读,rw可读可写,默认值
--volumes-from 容器 - 继承指定容器的数据卷
--net 网络名 - 指定网络名,默认bridge
/bin/bash - 交互式 Shell, 用的是 /bin/bash
cmd:
FROM - 基础镜像
MAINTTAINER - 作者,格式:姓名+邮箱
RUN - 构建时运行的指令
ADD - 添加的文件
WORKDIR - 工作目录
VOLUME - 挂载目录
EXPOSE - 声明端口
CMD - 容器启动时运行的指令,仅最后一个生效,替代命令
ENTRYPOINT - 容器启动时运行的命令,追加命令
ONBUILD - 被继承时运行的指令
COPY - 拷贝文件到镜像
ENV - 设置环境变量,镜像内有效
ARG - 设置环境变量, 仅dockerfile内有效
FROM
FROM 镜像
RUN
&& 符号连接命令,减少构建层数
shell 格式:RUN <命令行命令>
<命令行命令> 等同于,在终端操作的 shell 命令。
exec 格式:RUN ["可执行文件", "参数1", "参数2"]
RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline
CMD
CMD <shell 命令>
CMD ["<可执行文件或命令>","" ,"" ,...]
ENTRYPOINT
ENTRYPOINT ["" ,"" ,"" ,...]
COPY
COPY [--chown=<user>:<group>] <源路径1>... <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
压缩包不会自行解压
ADD
ADD <源文件>
压缩包会自行解压
ENV
ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...
ARG
ARG <参数名>[=<默认值>]
VOLUME
VOLUME ["<路径1>", "<路径2>"...]
VOLUME <路径>
EXPOSE
EXPOSE <端口1> [<端口2>...]
WORKDIR
WORKDIR <工作目录路径>
ONBUILD
ONBUILD <其它指令>
docker network
Commands:
connect 使容器与网卡建立连接
create 创建网络
inspect 查看网络的元信息
ls 列出所有网络
rm 删除网络
创建网络
docker network create 网络名
--subnet xxx.xxx.xxx.xxx/xx - 指定子网络地址
--gateway xxx.xxx.xxx.xxx - 指定网关
删除网络
docker network rm 网络名
查看网络
docker network ls
查看网络元信息
docker network inspect 网路名
网络连通
docker network connect 网络名 容器名