Docker常用命令与小技巧汇总

2020-06-17 07:00:37易采站长站整理

常用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

注意:

截至目前位置, 这个docker镜像的python脚本还比较老,不支持basic auth. 如果需要basic auth, 需要自行更新python文件,并重新docker build才可以。Github地址: https://github.com/abhinavsingh/proxy.py
在实际生产之中, 用多了貌似有自动无法链接的情况。也可能是目标网站的问题。
这个东东也可以作为浏览器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