分類: 技術
取得docker container的啟動資訊
有時候常常要查詢一下當初docker container啟動的參數, 若使用docker-compose當然沒問題,可以直接查看yaml檔案,
若不是使用compose , 就比較麻煩了, 尤其是我常常使用指令的方式, 又常常沒有記錄下來指令, 就會出問題.
好險這些問題有解法
https://github.com/lavie/runlike
只要執行以下指令, 後面接 container name 就可以知道當初執行的相關設定了
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike <container Name>
很簡單直覺,java限制雙開的程式寫法
private static final int PORT = 9999;
private static ServerSocket socket;
private static void main() {
try {
//Bind to localhost adapter with a zero connection queue
socket = new ServerSocket(PORT,0,InetAddress.getByAddress(new byte[] {127,0,0,1}));
// 正常流程
//
}
catch (BindException e) {
// 異常流程
System.err.println("Already running.");
System.exit(1);
Runtime.getRuntime().halt(0);
}
}
Linux 將命令模式下執行程式,所輸出的紀錄引導到檔案
以java為例,
System.out.println(“log …”)
可以在console下看到結果, 但我們若需要未來分析使用, 就必須導到檔案.
執行時可以增加以下參數
java -jar xxx.jar > a.out 2>&1
以前常常搞不清楚, 現在也還是一樣不太懂, 沒差拉, 這樣就可以用了, 然後 tail -f a.out 就可以在螢幕看到即時訊息, 事後也能將a.out保存起來呢.
關於Java Single Instance只能執行一次的解法
我找了2資源, 想法都很不錯, serversocket 的做法最容易接受 , 但真的被反組譯修改,也是防不勝防,除非連程式都簽章加密處裡.
https://rosettacode.org/wiki/Determine_if_only_one_instance_is_running#Java
launch4j把java程式轉成exe可執行檔案
一直以來,我都是讓使用者執行bat, 開啟命令提示視窗, 來啟動java程式,但 這樣很難讓麻瓜接受使用,
因此網路上找到好用的轉換程式, 可以直接把jar檔案轉換成exe檔案, 這樣就方便多了
使用方式可點這裡看教學 ,
比較值得注意的是,可以勾選single Instance , 限制只能執行一次, 不能多次執行, 這功能真是太棒了
docker安裝peertube影音平台
peertube是開源的串流影音平台, 很適合拿來管理私人影音檔案.
本文安裝的先決條件是:
已備有httpd反向代理, 以及lets encrypt ,
因此不使用peertube官方自帶的webserver與cerbot, 以免造成管理上的困擾
帳號密碼: guest/guest
https://docs.kafeiou.pw/iammis/技術文章/HowTo/10034_(docker)安裝peertube.txt
ubuntu 安裝oracle jdk 8
1. 先到oracle網站下載
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 下載 jdk-version-linux-x64.tar.gz
2. 解開 tgz
sudo tar zxvf jdk-version-linux-x64.tar.gz -C /usr/lib/jvm
3. 安裝到 update-alternatives
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_version/bin/java" 1
4. 設定oracle java
sudo update-alternatives --config java
pfsense的openvpn用戶端設定檔案如何移除
pfsense設定openvpn非常方便, 也有package能協助匯出windows用戶端安裝程式 , 再給使用者無腦安裝, 可以省下IT很多時間.
但是若使用者想要刪除設定檔案, 打開openvpn gui預設的資料夾,卻找不到設定檔案, 就無法刪除設定檔案.
查了一下設定檔案profile的位置, 總共有兩個地方.
1. openvpn gui預設的
%USERPROFILE%/OpenVPN/config
2.program file裡面
%ProgramFiles%/OpenVPN/config
pfsense用戶端安裝的時候, 設定檔案卻放在 ProgramFiles 裡面, 超怪的, 就算是新版pfsense 2.5.1 也跟2.4.5p1一樣沒變, 此時只要到正確的目錄, 刪除相關檔案,重啟常駐的openvpn gui 就可以了
ubuntu 20.04 安裝docker
1.
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
##$(lsb release -cs) 試圖找出ubuntu對應版本 ,
##或是到這查https://download.docker.com/linux/ubuntu/dists/
sudo apt-get install docker-ce docker-ce-cli containerd.io
2. 自訂存放目錄
修改 /lib/systemd/system/docker.service
從
ExecStart=/usr/bin/docker daemon -H fd://
改成
ExecStart=/usr/bin/docker daemon --data-root <自訂目錄> -H fd://
重啟 docker
systemctl stop docker
systemctl daemon-reload
systemctl start docker
完成