前言
-
0. 基础知识
镜像,容器是docker中最终的两个概念。
- 镜像:镜像就是一个基础版的
服务器
,我们可以通过这个基础版的镜像去创建一个容器。镜像中装的是你的代码,数据,模型,已经安装好的软件等~ - 容器:使用镜像生成容器,然后运行容器就可以进入到
docker
中。
1.镜像相关
1.1 查看镜像
docker images
1.2 生成镜像
可以使用 Dockerfile
来打包生成镜像。 Dockerfile
是用来指定该怎么生成 docker 镜像。下面就是一个完整的 Dockerfile
文件。
FROM daguan:1 # 从某个基础镜像获取,比如阿里云等镜像
ADD . /data # 将当前目录下的东西放到 /data 下
WORKDIR /data # 指定/data 为工作目录,即当前目录
RUN pip install --upgrade pip # 升级pip
RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple # 指定pip源
2.使用镜像生成容器
docker run --gpus all --name lawson --shm-size 8G -p 7722:22 -p 9876:76 -v /home/liushen/working:/working -it -d hunter:v2
解释一下:
- 这个端口号映射关系:容器内的22端口映射到服务器的7722端口;容器内的76号端口映射到9876端口。
-
hunter:v2
指的就是镜像的名是hunter:v2
,其中v2
是一个人为给的标签,用于方便确认是哪一个tag。
执行命令docker exec -it lawson /bin/bash
进入docker中,启动docker之后,有点儿像是重新搞了一套虚拟系统,这个系统跟原来的系统没有任何关系,但是可以添加一些端口映射从而控制这个关系。
3.问题
3.1 ssh连接出现Permission denied, please try again.
我的原因是:sshd_confit 这个文件中的 PermitRootLogin prohibit-password 这个值没有改成 PermitRootLogin yes
4.docker 容器相关操作
4.1删除容器
docker rm container_id
4.2 删除镜像
doocker rmi (IMAGE ID)
4.3 查看日志
运行docker 的时候,可能会出现错误,所以这时候就可以使用 docker logs
查看运行过程的日志。