1. 啟動容器
docker run -d --name jupyter -p 8888:8888 jupyter/base-notebook
更多鏡像可以參照:https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html#jupyter-tensorflow-notebook
2. 查看日志,需要里面的token
docker logs -f --tail 1000 jupyter
3. 找到類似這樣的地址,復制token的值
http://127.0.0.1:8888/?token=f608db82801fd00aeede291504291d9aeda7f36d002e3201
4. 訪問jupyter頁面
http://你的宿主機ip:8888
5. 輸入token即可登陸,但是每次重啟都會換token,所以需要自己設置自己的密碼。
6. 進入容器內部
docker exec -it --user root jupyter bash
7. 設置密碼
jupyter notebook password
8. 輸入要設置的密碼並確認后,會提示密碼已經保存到特定文件了(此時理論上應該可以重啟容器並用新密碼登陸了,但是我的無法重啟,因此有了下面步驟)
Enter password:
Verify password:
[NotebookPasswordApp] Wrote hashed password to /home/jovyan/.jupyter/jupyter_notebook_config.json
9. 查看新密碼
cat /home/jovyan/.jupyter/jupyter_notebook_config.json
{ "NotebookApp": { "password": "argon2:$argon2id$v=19$m=10240,t=10,p=8$sQW/babWm****LlnRnEy+oA$2vTX8Gz**********Hpzg" } }
10. 復制password的值,然后輸入 exit 退出容器。
11. 停止並刪除剛才的容器,並重新創建容器,NotebookApp.password的值就是剛才復制的內容。
docker run -d --name jupyter -p 8888:8888 jupyter/base-notebook start-notebook.sh --NotebookApp.password='argon2:$argon2id$v=19$m=10240,t=10,p=8$sQW/babWmn3T**************tQdczLHpzg'
12. 此時應該可以使用 http://你的宿主機ip:8888 登陸你的jupyter notebook了。
13. 我的配置在雲服務器了,可以在各個地方寫代碼就很舒服,沒電腦也可以在手機寫python豈不是很香。
如果有自己的域名,可以配置nginx做反向代理,就可以域名訪問了
server { listen 80; server_name py.yourwebsite.com; location / { proxy_pass http://192.168.0.230:8888; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } }