Close

介紹幾款 Docker 鏡像

Docker 是壹個開放源代碼軟件項目,讓應用程序布署在軟件容器下的工作可以自動化進行,借此在 Linux 操作系統上,提供壹個額外的軟件抽象層,以及操作系統層虛擬化的自動管理機制。 Docker 利用 Linux 核心中的資源分脫機制,例如 cgroups,以及 Linux 核心名字空間(name space),來創建獨立的軟件容器(containers)。這可以在單壹 Linux 實體下運作,避免啟動壹個虛擬機造成的額外負擔。 簡單概括起來就是,Docker 是個容器,什麼都能往裏塞,妳也可以理解為是壹個輕量化的虛擬機。 使用 Docker 的好處就是對當前系統的環境沒有破壞性,基本上壹款鏡像可以跑在任意包含了 Docker 的機器上,可以說是十分方便了。 本文主要介紹壹下我在學習 Docker 的過程中制作的幾款鏡像,以及使用方法。

安裝並啟動 Docker 操作系統內核大於等於 3.10 的都可以安裝最新版 Docker,可以直接運行官方的安裝腳本壹鍵安裝。 執行腳本方法如下: wget -qO- get.docker.com | bash 安裝完成後,運行下面的命令,驗證是否安裝成功。 docker version 啟動 Docker systemctl start docker 查看 Docker 啟動狀態 systemctl status docker 允許 Docker 開機自啟 systemctl enable docker Shadowsocks-libev Docker Image 基於官方 alpine:latest 鏡像制作,編譯安裝最新版 shadowsocks-libev,simple-obfs 以及 v2ray-plugin 插件。 該容器在啟動時依賴於讀取宿主機裏的配置文件,因此在啟動該鏡像時配合不同的 config 文件,就能開啟任意個 Docker,也就是所謂的多端口。

把配置文件放在宿主機裏,是基於這樣的考量:隨時在宿主機裏修改配置的端口,密碼,加密方式等信息,然後只需重啟容器,無需再次創建新的容器。 支持的 Tags 及 Dockerfile 3.3.3, latest, alpine (Dockerfile) 拉取鏡像 docker pull teddysun/shadowsocks-libev 創建 config 文件 比如在目錄 /etc/shadowsocks-libev 下創建 config.json,完整路徑也就是 /etc/shadowsocks-libev/config.json 範例內容如下: { "server":"0.0.0.0", "server_port":9000, "password":"password0", "timeout":300, "method":"aes-256-gcm", "fast_open":true, "nameserver":"8.8.8.8", "mode":"tcp_and_udp" } 如果妳想同時開啟 simple-obfs,那麼配置文件範例如下: { "server":"0.0.0.0", "server_port":9000, "password":"password0", "timeout":300, "method":"aes-256-gcm", "fast_open":true, "nameserver":"8.8.8.8", "mode":"tcp_and_udp", "plugin":"obfs-server", "plugin_opts":"obfs=tls" } 如果妳想同時開啟 v2ray-plugin,那麼配置文件範例如下: { "server":"0.0.0.0", "server_port":9000, "password":"password0", "timeout":300, "method":"aes-256-gcm", "fast_open":true, "nameserver":"8.8.8.8", "mode":"tcp_and_udp", "plugin":"v2ray-plugin", "plugin_opts":"server" } 配置文件裏面所有選項的含義,可以參考這個鏈接。 關於 v2ray-plugin 的更多配置可以參考這個鏈接。 啟動容器 在上面這個範例裏,定義的端口是 9000,那麼在啟動容器時就需要將 9000 端口映射到宿主機的對外端口上。 啟動命令: docker run -d -p 9000:9000 -p 9000:9000/udp --name ss-libev --restart=always -v /etc/shadowsocks-libev:/etc/shadowsocks-libev teddysun/shadowsocks-libev docker run:開始運行壹個容器。 -d 參數:容器以後臺運行並輸出容器 ID。 -p 參數:容器的 9000 端口映射到本機的 9000 端口。默認是映射 TCP,當需要映射 UDP 時,那就再追加壹次 UDP 的映射。冒號後面是容器端口,冒號前面是宿主機端口,可以寫成壹致,也可以不壹致。 –name 參數:給容器分配壹個識別符,方便將來的啟動,停止,刪除等操作。 -v 參數:掛載卷(volume),冒號後面是容器的路徑,冒號前面是宿主機的路徑,可以寫成壹致,也可以不壹致。 teddysun/shadowsocks-libev:這是拉取回來的鏡像路徑。 查看容器運行情況 利用如下命令可以查看所有已創建的 Docker 容器並顯示容器的大小等信息: docker ps -as 停止容器 利用如下命令可以停止正在運行中的容器: docker stop $name 此處的 $name 就是在啟動容器那壹步定義的容器的識別符,比如範例演示的 ss-libev 刪除容器 容器停止後,可以利用如下命令刪除容器: docker rm $name 此處的 $name 就是在啟動容器那壹步定義的容器的識別符,比如範例的 ss-libev 啟動容器 利用如下命令可以啟動已經停止的容器:

發表評論