docker运行jupyter

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

 https://jupyter-docker-stacks.readthedocs.io/en/latest/_images/inherit.svg

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;
   }
}

 

posted @ 2022-01-15 15:42  yanglei.xyz  阅读(943)  评论(0编辑  收藏  举报