How to modify the file of Docker’s container

最近將寫好的 Spring Boot jar 放到 Docker 裡執行;結果⋯⋯發生了和 The server selected protocol version TLS10 is not accepted 一樣的問題。初期時還到處找到底是那裡出問題了導致無法連線到 SQL Server ;靈光一閃才想到這個解法。但⋯⋯同時就出現了:如何進到 Docker Container 中去修改檔案的問題囉!

先列出 Docker 目前有在執行的容器以便取得 Container ID。

docker ps 

進入容器。

docker exec -it 容器ID bash

一般來說、在 Container 中若沒有事先設定(在Dockerfile設定那篇文章裡已有加入新設定);是會沒有安裝我們等等要用來修改文件的「vim」,所以要再多加以下步驟去安裝。

# 先升級內部套件
apt-get update
# 安裝 vim 
apt-get install vim

找某一個檔案的方法(這裡以 java.security 為例)。

find / -name java.security

進入檔案目錄、並開啟檔案修改。

# 進入目錄
cd /opt/java/openjdk/conf/security
# 修改檔案
vim java.security

依照 The server selected protocol version TLS10 is not accepted 修改後、重啟 Docker Container 。

docker restart 容器ID

Fix docker’s mirror SAVE to LOAD no repository and tag

我在 How to Run Spring Boot Application in a Docker Container 以及 How to Run ReactJs Application in a Docker Container 中沒有提到若是在本機 Docker 做好 image 後,如何將測試好的 image 轉到其他 Docker 上。其實還蠻簡單的幾個指令。

docker save Image ID > 檔名

docker load < 檔名

但是這樣會發生如同文章標題所提的:Respository &. Tag 都會沒有名稱、而沒有名稱當然也不知道如何去運行它(原因我沒詳究)。

在網路上找了許多方法;我覺得最簡單的方法就是在導出(Save)時、將原本的 Respository & Tag 加入如下:

docker save Image ID > 檔名 原REPOSITORY:原TAG

這樣在另一個 Docker 中導入時就不會有問題了。