晒晒我家小院子

0%

git commit规范

1
2
3
4
5
6
7
8
9
10
11
feat:新增功能
fix:修复bug
docs:修改文档
refactor:代码重构,未新增任何功能和修复任何bug
build:改变构建流程,新增依赖库、工具
style:仅仅修改了空格、缩进等,不改变代码逻辑
perf:改善性能和体现的修改
chore:非src和test的修改
test:测试用例的修改
ci:自动化流程配置修改
revert:回滚到上一个版本

总结一些做汇报和演讲时,需要注意的事情

主要从“演讲前的准备”、“演讲中”、“如何结束演讲”、“遇到提问,如何回答”这几个方面来阐述

一、演讲前的准备

基本上都需要有PPT,还需要符合风格,需要事先熟悉PPT,不要卡壳,不要读错字,

最好是图片,和关键字,其他的全靠后面讲,把要讲的内容理清

二、演讲中
三、如何结束演讲
四、遇到提问,如何回答

Docker-compose笔记

  • 这是一个docker-compose的小demo 地址,清晰的阐述了docker-compose的基本操作

常用命令

1
2
3
4
docker-compose build
docker-compose up -d
docker-compose ps
docker-compose down -v

Docker

常用命令

1
2
3
4
5
6
# 在docker反复build后,会存留很多none镜像,下面命令一键删除所有none镜像
docker rmi `docker images | grep '<none>' | awk '{print $3}'`
或者
docker rmi $(docker images -q -f dangling=true)
# 删除所有停止的容器
docker rm $(docker ps -a -q)

删除所有未运行的容器

1
docker rm $(docker ps -a -q)
docker cp
1
2
3
4
5
6
# 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
# 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www
# 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp 96f7f14e99ab:/www /tmp/

基础知识

概念
  • 镜像 Image
  • 容器 Container,镜像的一个实例
  • 仓库 Repository,用来存储镜像
容器使用-常用命令及参数

运行容器命令 docker run

1
2
3
4
5
6
7
8
9
10
# 命令 docker run
-i 标准输入,进行交互
-t 指定伪终端
-d 运行模式,后台运行
-P 将容器内部使用的网络端口随机映射到我们使用的主机上
-p 指定映射的端口
# 例子
docker run -i -t ubuntu:15.10 /bin/bash
docker run ubuntu:15.10 /bin/echo "Hello world"
docker run -d -p [127.0.0.1:]5000:5000[/udp] training/webapp python app.py

进入容器命令 docker exec

1
2
3
4
5
# 命令 docker exec
docker exec -it container_id /bin/bash # 退出不会停止容器
docker attach container_id # 退出会停止容器
# 退出容器
exit

查看容器的命令 docker ps

1
2
3
4
# 命令 docker ps
默认查看正在运行的容器
-a 查看所有容器
-l 查看最后一次创建的容器

其他命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 查看容器的标准输出  -f 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
docker logs container_id
# 运行容器
docker start container_id
# 停止容器
docker stop container_id
# 重启容器
docker restart container_id
# 获取容器
docker pull ubuntu
# 删除容器
docker rm -f container_id
# 导出容器
docker export container_id > ubuntu.tar
# 导入容器
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
# 通过url来导入
docker import http://example.com/exampleimage.tgz example/imagerepo
# 查看容器端口映射情况
docker port container_id
# 容器命名
docker run -d -P --name mingzi training/webapp python app.py
镜像使用-常用命令及参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看已有镜像
docker images
# 在网络中搜索镜像
docker search python3
# 下载镜像
docker pull python3
# 删除镜像
docker rmi hello-world
# --更新镜像--
docker run -t -i ubuntu:15.10 /bin/bash # 运行一个容器
在运行的容器内使用 apt-get update 命令进行更新。
在完成操作之后,输入 exit 命令来退出这个容器。
此时 ID 为 e218edb10161 的容器,是按我们的需求更改的容器。通过命令docker commit来提交容器副本。
docker commit -m="has update" -a="zuozhe" e218edb10161 runoob/ubuntu:v2
# --使用Dockerfile文件来创建镜像--, -t指定创建的目标镜像名
docker build -t runoob/centos:biaoqian . # 点好表示Dockerfile文件所在目录
# 设置镜像标签
docker tag image_id runoob/centos:dev
Docker 容器连接

网络端口映射

1
2
3
4
docker run -d -P training/webapp python app.py
docker run -d -p 5000:5000 training/webapp python app.py
docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

容器互联

1
2
3
4
5
6
7
# 新建网络
docker network create -d bridge test-net
# 查询网络
docker network ls
# 运行一个容器并连接到新建的 test-net 网络
docker run -itd --name test1 --network test-net ubuntu /bin/bash
docker run -itd --name test2 --network test-net ubuntu /bin/bash
Docker 仓库管理
Docker Dockerfile

例子 - 创建一个Dockerfile文件,内容如下:

1
2
3
4
5
FROM nginx
RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html
COPY hom?.txt /mydir/
# ADD
# CMD
1
2
3
# 构造命令
docker build -t nginx:v3 .
&&
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 常用命令
RUN <命令行命令> # 多个命令,以 && 符号连接命令
COPY [--chown=<user>:<group>] <源路径1>... <目标路径>
ADD # ADD 指令和 COPY 的使用格式一致,官方推荐使用 COPY
CMD ["<可执行文件或命令>","<param1>","<param2>",...] # CMD 在docker run 时运行。
ENTRYPOINT ["<executeable>","<param1>","<param2>",...]
# 环境变量
ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...
ARG <参数名>[=<默认值>] # 仅 docker build 的过程中有效
# 匿名数据卷
VOLUME <路径>
WORKDIR <工作目录路径>
USER <用户名>[:<用户组>]

import异常

问题描述

导入其他包里的模块,当在项目外执行run.py文件的时候,会出现找不到模块路径

解决办法

将项目根目录加入到Python 解释器搜索路径里

1
2
3
4
5
6
import os,sys
project_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(project)
sys.path.insert(0, project) # 推荐使用,可以避免不必要的路径搜索
# os.path.abspath(__file__) 是获取本文件的绝对路径
# os.path.dirname() 返回路径字符串的目录部分