[Python] 設定密碼來取代token

Starting at notebook version 5.0, you can enter and store a password for your notebook server with a single command. jupyter notebook password will prompt you for your password and record the hashed password in your jupyter_notebook_config.json.

  1. 打開 jupyterlab,新建一個Notebook,然後開一個cell輸入:
from notebook.auth import passwd
passwd()
  1. 輸入兩次密碼後,重開 docker,之後就可以使用密碼取代token。
    記得 docker restart ,容器重開。

常用指令補充:

1. Docker,重開機後,當下次想進去容器使用命令列時:

$ docker exec -it miniconda /bin/bash
可以開第二個終端機,進去進行pip安裝套件等工作
-i:互動模式
-t:終端機
-d:在背景執行

2. Docker,進去容器裡面設定conda相關套件:

開始設定環境(假如是linux的話,可以輸入以下指令即可:)

# 啟動環境
$ conda activate 999

# 關閉環境
$ conda deactivate 

3. Docker,get the notebook token from the logs:

docker logs --tail 3 notebook

[Linux] UniFi Controller and Docker

簡單做個筆記:

以下都是使用一般user權限,不用root。畢竟一開始也有將某個user開通docker使用權限了。(參考上篇)

$ cd /home
$ mkdir -p unifi/data
$ mkdir -p unifi/log

# 測試指令:
$ docker run --rm --init -p 8080:8080 -p 8443:8443 -p 3478:3478/udp -e TZ='Asia/Taipei' -v /home/unifi:/unifi --name unifi jacobalberty/unifi:latest
 
     --rm:其用途就是在我們執行完指令後,可以不用再下 docker rm 的指令去刪除容器,直接在執行完指令後, Docker可以自動幫我們刪除容器。
     latest:本來要裝穩定版,但原本就有運作的UniFi Controller,他已經升級到最新版本,所以這邊也跟著抓最新版本
 

# 實際上線指令:
$ docker run -d \
     --restart=unless-stopped \
     --net=host \
     --name=unifi \
     -e TZ='Asia/Taipei' \
     -e RUNAS_UID0=false \
     -v /home/unifi:/unifi \
     jacobalberty/unifi:latest

     --net=host:是為了允許L2發現。如果不需要L2發現,只需映射Port即可。
     -e RUNAS_UID0 改成 false,讓 Controller 不要用 root 身份運作。


# 未來我該如何升級呢?
 $ docker pull jacobalberty/unifi:stable
 $ docker stop unifi
 $ docker rename unifi unifi.save

然後再做一次run指令,跟上面相同
 $  docker run -d \
     --restart=unless-stopped \
     --net=host \
     --name=unifi \
     -e TZ='Asia/Taipei' \
     -e RUNAS_UID0=false \
     -v /home/unifi:/unifi \
     jacobalberty/unifi:latest

[Linux] 在ubuntu安裝Docker的一些筆記

環境

Ubuntu 20.04

安裝 docker

$ sudo apt-get install docker.io

檢查 docker 服務有無正常啟動

$ service docker status

如果沒意外的話會在前面幾行看到:Active:active(running)

將自己使用者帳號加入 docker 群組

$ sudo usermod -aG docker <username>

這個動作主要是因為權限的關係,如果沒有加這個,會導致普通使用者沒權限使用 Docker。

登出後再重新登入

$ docker version

會出現 Client、Server 的訊息,但如果最下面出現了:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

這就是可能因為沒做第三個步驟,通常是權限的問題。


閱讀全文〈[Linux] 在ubuntu安裝Docker的一些筆記〉

[Linux] 替虛擬主機上的Ubuntu擴充 LVM 空間

前提

最近在主機上架設了Docker,因為我需要每天下班後讓電腦排程自動去網路上抓特定最新資料,想了想,還是在linux上來處理類似服務比較方便。由於需要安裝 Python和相關套件,為了避免影響現有主機上的服務,乾脆架設Docker服務,然後容量就不太夠了。

檢查

  • 我已提前在VM擴充空間,從100GB擴充到160GB,接下來要在ubuntu20.04裡設定
  • 檢查PV 目前有多少空間
$ pvdisplay
  • 檢查VG 空間
$ vgdisplay
  • 看一下最後的LV 空間
$ lvdisplay

開始

擴充順序:PV 100GB->160GB => VG => LV

$ parted
(parted) print          #列出目前狀態
(parted) resizepart     #剛剛狀態顯示number 2可以擴充,選 2   
(end) 160GB             #剛剛print 有顯示 磁碟 /dev/sda: 最大可以多少
(parted) resizepart     #選 5 擴充LVM
(end) 160GB             
(parted) print        
(parted) quit  

$ pvdisplay             #看一下pv最新空間大小,順便查一下是sda??
$ pvresize /dev/sda5    #對sda5進行resize操作
$ pvdisplay             #pv應該順利擴增到160GB了

$ vgdisplay             #查看一下:PV上的VG容量也變大了

$ lvdisplay             #檢查 LV狀態
$ lvextend -L 144.56G /dev/Coolsea-vg/root    
                        #擴增空間,無法輸入滿160G是正常的
                        #這數字就是lvdisplay原本size + vgdisplay裡面看到的free size
$ lvdisplay             #再次檢查,應該成功了

$ resize2fs /dev/Coolsea-vg/root  #跑完resize2fs就可以收工。

[Python] 常用conda指令

1.升級

conda update conda
conda update anaconda
conda update anaconda-navigator

2.conda環境使用基本命令:

conda update -n base conda //update最新版本的conda
conda create -n xxxx python=3.7 //建立python3.7的xxxx虛擬環境
conda activate xxxx //開啟xxxx環境
conda deactivate //關閉環境
conda env list //顯示所有的虛擬環境

conda remove -n xxxx --all //刪除xxxx虛擬環境

3.更新,解除安裝安裝包:

conda list #檢視已經安裝的檔案包
conda list -n xxx #指定檢視xxx虛擬環境下安裝的package
conda update xxx #更新xxx檔案包
conda uninstall xxx #解除安裝xxx檔案包

4.清理(conda瘦身)

conda clean -p //刪除沒有用的包