[root@ztydl ~]# docker images
REPOSITORY                              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos-wget                             latest              9e694366ecc0        29 minutes ago      312.9 MB
centos                                  latest              1c1b67b33c28        3 weeks ago         196.6 MB
daocloud.io/centos                      7                   1c1b67b33c28        3 weeks ago         196.6 MB
zty                                     latest              32e90b4dd628        3 weeks ago         108.3 MB
daocloud.io/daocloud/daocloud-toolset   latest              2a2ecdfa41dc        6 months ago        147.1 MB

根据镜像ID删除镜像(-f force 强行删除)

[root@ztydl ~]# docker rmi 32e90b4dd628
Error response from daemon: Conflict, cannot delete image 32e90b4dd628 because it is tagged in multiple repositories, use -f to force
Error: failed to remove images: [32e90b4dd628]




[root@test ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg_test
  PV Size               9.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              2434
  Free PE               0
  Allocated PE          2434
  PV UUID               uuFpno-W0L9-8TLY-FAIT-ZzIl-2rh4-SUvk2z

  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg_test
  PV Size               10.00 GiB / not usable 4.70 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              2558
  Free PE               128
  Allocated PE          2430
  PV UUID               VNL3Ui-v9KS-0HJY-3Zsb-R6Dy-Hgpt-gpuFnM


<!--more--> [root@test ~]# lvdisplay --- Logical volume --- LV Path /dev/vg_test/lv_root LV Name lv_root VG Name vg_test LV UUID w5FAwQ-dSX8-77fJ-3Ayl-SWK5-mMb5-wrZM33 LV Write Access read/write LV Creation host, time test.com, 2017-10-16 22:49:07 +0800 LV Status available # open 1 LV Size 18.00 GiB Current LE 4608 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Path /dev/vg_test/lv_swap LV Name lv_swap VG Name vg_test LV UUID JbqQAI-od42-PK80-PZAF-ovbI-Z9vH-XZR5Co LV Write Access read/write LV Creation host, time test.com, 2017-10-16 22:49:09 +0800 LV Status available # open 1 LV Size 1.00 GiB Current LE 256 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1


[root@test ~]# fdisk /dev/sdb 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xf5002802.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): 1
First cylinder (1-652, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): 
Using default value 652

Command (m for help): t             #修改分区格式
Selected partition 1
Hex code (type L to list codes): L      #查看分区格式列表

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1
Hex code (type L to list codes): 8e                 #类型修改为8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xf5002802

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+  8e  Linux LVM

Command (m for help): w     #保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


mkfs -t ext4 /dev/sdb1
pvcreate /dev/sdb1
vgextend vg_test /dev/sdb1              #先扩展VG
lvextend -L 9G /dev/vg_test/lv_root     #扩展LV 9G为总大小 如果是增加4G 可写为 +4G
resize2fs /dev/vg_test/lv_root 
df -h
resize2fs /dev/vg_test/lv_root          #resizes 
df -h



用requests库下载一个xml文件,结果 return response.content 的时候发现返回的文本是这样的


查了一下EF BB BF是被称为 Byte order mark (BOM)的文件标记,用来指出这个文件是UTF-8编码
在Stack Overflow上面搜到一个类似的问题


>>> b'\xef\xbb\xbfhello'.decode('utf-8-sig')

LeetCode 7 反转整数


给定一个 32 位有符号整数,将整数中的数字进行反转。


class Solution:
    def reverse(self, x):
        :type x: int
        :rtype: int
        if x >= 0:
            y = int(str(x)[::-1])
        elif x < 0:
            y =  -int(str(-x)[::-1])
        return y if y < 2147483648 and y > -2147483648 else 0


LeetCode 9 回文数




class Solution:
    def isPalindrome(self, x):
        :type x: int
        :rtype: bool
        if x < 0:
            return False
            y = str(x)[::-1]

        if str(x) == y:
            return True
            return False


将数字转换为字符串然后切片 生成新的字符串
先判断 if x < 0 返回 false 可以提高效率

LeetCode 1 两数之和





def twoSum(nums, target):
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
    #         for i in range(len(nums)-1):
    #             for j in range(i+1,len(nums)):
    #                 if nums[i] + nums[j] == target:
    #                     return [i,j]
    dic = {}
    for i, num in enumerate(nums):
        if num in dic:
            print([dic[num], i])
            dic[target - num] = i

twoSum([1,3,5], 8)


当取到下一个num值时,先检查num 有没有在dic中,
如果存在,说明已经找到了两个num 满足相加等于t的条件(a+b=c => a=c-b)



$ pipenv --py

打开设置 在工作区设置中添加如下配置:

"python.pythonPath": "C:/Users/Administrator/.virtualenvs/httpbin-HCxJgMvt/Scripts/python.exe",
"python.linting.pylintEnabled": false

python.pythonPath 填写 第一步执行命令输出的路径
然后就可以在vscode中右键 选择 在终端中执行python文件啦


检查长度为n的列表,二分查找需要进行log n 次操作,使用大O表示法即O(log n)

def binary_search(list, item):
    :param list:
    :param item:
    low = 0
    high = len(list) - 1

    while low <= high:
        mid = int((low + high) / 2)
        guess = list[mid]
        if guess == item:
            return mid
        if guess > item:
            high = mid - 1
            low = mid + 1
    return None

list = [1, 3, 5, 7, 9, 12]

print(binary_search(list, 12))