一、前期准备
centos8安装docker:
首先安装部署前先检查防火墙状态:
systemctl disable firewalld
然后关闭
systemctl stop firewalld
还有一个是关闭selinux
查看selinux状态:cat /etc/selinux/config
SELinux共有3个状态enforcing (执行中)、permissive (不执行但产生警告)、disabled(关闭)
永久关闭:
sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config
最后还需要重启 reboot
以上命令闭眼睛打就好了,不关掉影响部署
更新:
请执行以下命令更新系统:
sudo yum update -y
先更新
然后检查系统版本
cat /etc/os-release
Docker 支持 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10
可以提前检查下:且需要启用centos-extras repository。在 CentOS 7 中这个仓库是默认启用的,如果之前有将其禁用,则需要重新启用
安装后可通过 lsb_release -a
快速查看系统版本:
yum install -y redhat-lsb-core
lsb_release -a
Yum安装不成功 原因大家都明白 所以需要更换国内源
先保留一份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
换源,看了很多篇文章,普遍也是阿里和腾讯
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
可以先测试下:
yum install wget -y
旧版本的Docker在CentOS中的包名为docker或者docker-engine 如果你有安装,那就卸载掉及依赖
二、安装 Docker
依赖包安装:
sudo yum install -y yum-utils
添加docker 仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker
sudo yum install docker-ce docker-ce-cli containerd.io -y
安装成功后,检查,docker网关默认172.17.0.0/24网段,有冲突就需要更换
Docker起了后 可以使用docker ps 查看
Docker源:
先创建目录 sudo vi /etc/docker/daemon.json 再加上去
{
"bip": "192.168.1.1/24",
"data-root": "/data/docker",
"registry-mirrors": [
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"https://docker.chenby.cn",
"http://mirror.azure.cn",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://hub.rat.dev",
"https://mirror.ccs.tencentyun.com"
]
}
启动服务:
sudo systemctl start docker
查看状态:
sudo systemctl status docker
尝试
sudo docker run hello-world
sudo docker ps 列出当前容器
sudo docker stop [container] 停止容器
sudo docker rm [container] 删除容器
sudo docker rmi [image] 删除镜像
停止容器:docker start 容器ID或容器名
直接关闭容器:docker kill 容器ID或容器名
重启容器:docker restart 容器ID或者容器名
sudo docker exec -it [container] /bin/bash 进入运行中的容器并打开 bash shell
七、需要完全卸载docker的命令:
sudo yum remove docker-ce
docker-ce-cli containerd.io -y
sudo rm -rf /var/lib/docker
前面是部署镜像环境,那么后面是用centos8服务器,部署镜像JupyterNotebook
在已经有部署加测验的前期条件下,后面只需要做两件事情
1.选取并拉取镜像
2.容器参数设置与启动容器
只需要拉去这个就好了。jupyter/base-notebook 他是所有镜像的基础
拉取镜像时,镜像的存储位置取决于您在 daemon.json 中配置的 data-root 参数。根据您之前的配置,具体存储路径如下:/data/docker/
/data/docker/image/overlay2/imagedb/content/ # 镜像元数据
/data/docker/overlay2/ # 镜像分层文件
如果不按之前的操作改写文件:默认路径就是在 /var/lib/docker/
尝试拉取镜像:
docker pull jupyter/datascience-notebook
安装好后docker run
docker run -p 8888:8888 jupyter/scipy-notebook:latest
// 但这种操作一次性的,可以了解一下容器这方面的特性,不会持久化到磁盘,在容器被关闭后,都会被删除
例如:docker run -it --rm -v
-it: 以交互模式启动容器(分配伪终端,允许直接操作容器)。
--rm: 容器退出后自动删除自身(避免残留容器占用资源)
// 这种适合做实验
由于我是放在云服务器上,所以需要注意安全问题,而且我也需要将数据持久化
下一步重新启动容器时,并增加参数-v。在Jupyer中,我们要将外部文件夹映射到/home/jovyan/work
示例:
docker run -p 8888:8888 -v /your/local/folder:/home/jovyan/work jupyter/r-notebook
前面的8888是宿主机要映射的端口,后面的8888是容器的端口 我并不想做区分,要想后台运行,加入参数 -d就可以了
docker run -d -p 8888:8888 jupyter/scipy-notebook:latest
进入容器的方式 可以进去底层查看py或者pip的版本信息
docker exec -it <container_id_or_name> /bin/bash
生成密码很简单拿token在网页直接更改密码就好了
如果没有看到token,就进去容器底层,用 jupyter notebook list查就有了
一般docker起来后有链接,没有安全要求直接访问就好了
把127.0.0.1换成你要用的服务器ip就好了
其实部署docker版的也还有另一种思路
可以在vulhub中找
cd vulhub/jupyter/notebook-rce
docker-compose up -d