中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker常用命令與小技巧匯總

發布時間:2020-09-01 14:54:40 來源:腳本之家 閱讀:187 作者:FlyML 欄目:服務器

安裝腳本

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

注意:

  1. 截至目前位置, 這個docker鏡像的python腳本還比較老,不支持basic auth. 如果需要basic auth, 需要自行更新python文件,并重新docker build才可以。Github地址: https://github.com/abhinavsingh/proxy.py
  2. 在實際生產之中, 用多了貌似有自動無法鏈接的情況。也可能是目標網站的問題。
  3. 這個東東也可以作為瀏覽器SwitchSharp的代理哦, 不過推薦加上https + basic auth. 具體操作請看官方文檔。

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 

一些簡單的解釋:

  • –user $ID 必須要設置, 否則docker內部會出現permission issue
  • GF_INSTALL_PLUGINS : 安裝一些非自帶的插件
  • GF_SECURITY_ADMIN_PASSWORD : 賬號: admin / aaabbbccc

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛扎县| 鞍山市| 汶川县| 景谷| 安宁市| 教育| 惠州市| 怀安县| 揭阳市| 锡林郭勒盟| 邯郸市| 安吉县| 中牟县| 萨嘎县| 精河县| 关岭| 曲周县| 平山县| 福安市| 宜都市| 卓尼县| 如皋市| 苏尼特右旗| 诸暨市| 胶南市| 舒兰市| 南宫市| 长寿区| 嫩江县| 星座| 巴东县| 兰考县| 嘉义县| 巫溪县| 平潭县| 汉阴县| 汝阳县| 田东县| 隆尧县| 平和县| 长寿区|