您好,登錄后才能下訂單哦!
安裝腳本
Ubuntu / Centos
Debian的安裝貌似有問題, 需要解決安裝源的問題。
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun / AzureChinaCloud
如果在海外的AWS或者GCP等云服務器廠商, --mirror 自然不需要加上去了。
Centos在運行完成之后, 還需要手動的 sudo systemctl start docker.service 否則會提示docker沒有啟動之類的錯誤
日志相關
Grep String
正確的姿勢: docker logs nginx 2>&1 | grep "127."
比如查看Jupyter Notebook的token: docker logs notebook 2>&1 | grep "token"
其他支持的參數
-f : 類似tail -f 命令
--since : 從某個時間戳開始,比如 2013-01-02T13:23:37 也支持相對時間,比如: 42m
--until : 與上類似, 不過是反過來。
-t, --timestamp : 顯示時間戳
--tail N(default all) : 顯示最后幾行數據
Mount的技巧
比如Grafana 等,在docker image之中自帶一些文件。如果直接mount對應的目錄并且host目錄為空, 那么docker內部的
目錄就會被覆蓋。如何處理這種情況呢?
簡單粗暴的方法1:(思路only)
先運行一次, 然后使用 docker cp 命令將其復制出來
然后刪除剛才的docker container, 將文件復制到對應的目錄,再mount
更優雅一些的方法2:
以啟動 ClickHouse 為例
# Step 1.1: 創建一個docker volume (目的: 把CH Server的配置暴露出來) docker volume create --driver local \ --opt type=none \ --opt device=/home/centos/workspace/clickhouse/configs \ --opt o=bind \ ch-server-configs # Step 1.2 : 創建volume , mount 數據庫數據 docker volume create --driver local \ --opt type=none \ --opt device=/home/centos/workspace/clickhouse/data \ --opt o=bind \ ch-server-data # Step 2 : 啟動 (注意: 當存儲數據較多的時候, 第二次啟動,會花比較長的時間來初始化。 初始化結束之前嘗試鏈接會失敗。) sudo docker run -d --name mkt-ch-server \ -v ch-server-configs:/etc/clickhouse-server \ -v ch-server-data:/var/lib/clickhouse \ --restart always \ -p 9000:9000 -p 8123:8123 \ --ulimit nofile=262144:262144 yandex/clickhouse-server
這樣docker鏡像自帶的配置文件就不會在第一次mount的時候被清空
定時任務
比如mysql需要定期導出數據備份。這個操作最好是利用宿主機的crond來完成
0 1 * * * docker exec mysqldump xxxx
常用Docker鏡像及其安裝命令
MySQL
安裝
docker run --name some-mysql --restart always\ -v /my/own/datadir:/var/lib/mysql\ -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
Dump 數據
方式1: 已經在本地有mysql docker container
下面的命令是針對docker內部的mysql,也可以直接指定參數dump remote mysql
docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /path-to-data/all-databases.sql
方式2 : 在本地還沒有mysql docker container
# 用完就刪除,并在命令行提示輸入密碼 docker run -i --rm mysql:5.7 mysqldump --all-databases\ -h 172.17.0.1 -uroot -p | gzip -9 > /home/centos/workspace/mysql-data/backup.sql.gz
編輯器原因, 上面 > 沒有正確顯示出來
Restore 數據
還是參考上面 Dump 的方式,只不過命令行工具改成了 mysql
Python Proxy
多多少少要搞一些爬蟲吧。充分利用云服務器的IP用來做爬蟲代理。目前發現最簡單的爬蟲代理搭建方法:
docker run --name py-proxy -d --restart always -p 8899:8899 abhinavsingh/proxy.py
注意:
Jupyter Notebook
用了一圈, 感覺還是 tensorflow 鏡像自帶的Notebook比較簡單。 因為在mount host 目錄的時候, 沒有奇奇怪怪的權限問題。bash script 如下:
sudo docker run --name notebook -d --restart always \ -p 127.0.0.1:8888:8888 \ -v /path-to-workspace/notebooks:/tf \ tensorflow/tensorflow:latest-py3-jupyter
如果還需要鏈接Apache Spark等,參考如下Script
sudo docker run --name pyspark-notebook -d \ --net host --pid host -e TINI_SUBREAPER=true -p 8888:8888 \ -v /path-to-workspace/notebooks:/tf \ tensorflow/tensorflow:latest-py3-jupyter
Grafana
ID=$(id -u) docker run \ -d --restart always \ -p 3000:3000 \ --name=grafana \ --user $ID -v /path-to-data/grafana-data:/var/lib/grafana \ -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \ -e "GF_SECURITY_ADMIN_PASSWORD=aaabbbccc" \ grafana/grafana
一些簡單的解釋:
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。