1.ubuntu本地环境安装docker工具:
sudo apt-get install docker.io #ubuntu终端直接输入安装命令
2.验证docker是否安装成功
sudo docker -v
#或者
sudo docker info
3.Docker的启动
Docker 是服务器----客户端架构。命令行运行docker
命令的时候,需要本机有 Docker 服务。如果这项服务没有启动,可以用下面的命令启动。
sudo service docker start #service命令的用法
sudo systemctl start docker #systemctl命令的用法
4.Docker镜像拉取到本机(ubuntu)
拉取阿里天池常用的基础镜像BaseImage,image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。
sudo docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.1.0-cuda10.0-py3 #阿里天池的BaseImage
5.拉取镜像成功之后查看/删除本机的image文件
查看本机的image文件:
sudo docker image ls#查看本机的image文件
删除本机的image文件,[67a02ffc785d即为imageID]例如:sudo docker image 67a02ffc785d:
sudo docker image rmi [imageID]#删除本机image,其中67a02ffc785d为imageID,例 sudo docker image 67a02ffc785d
6.通过Dockerfile文件直接创建image文件
Dockerfile文件里面的内容,FROM后面跟着的是镜像文件。
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.1.0-cuda10.0-py3
#from后面紧跟着的是镜像
ADD . /competition
#表示把当前文件夹(competition)里的文件构建到镜像的根目录下
WORKDIR /competition
#指定默认工作目录为competition
RUN pip --no-cache-dir install -r requirements.txt
#安装镜像中所确实的依赖库
CMD ["sh", "run.sh"]
#镜像启动时候执行的命令 sh run.sh
可以通过Dockerfile直接拉取镜像以及工程项目和相关依赖库,其命令为:
sudo docker image build -t tianchi-demo .
参数-t:指定image(镜像)文件的名字,tianchi-demo就是镜像文件的名字
参数 . :其中这个. 表示的是Dockefile的路径,因此在执行这样一个命令的时候,将终端切换到Dockerfile目录下。
7.生成容器
image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。
sudo docker container run -p 8000:3000 -it tianchi-demo /bin/bash
命令中各参数的含义为:
参数-p:容器的 3000 端口映射到本机的 8000 端口。
参数-it:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
参数tianchi-demo:image文件的名字,如果有标签还需要提供标签,(例如:有时候在生成image时候有标签,tianchi- demo:1.0),如果没有标签的话不谢即可,默认为latest。
参数/bin/bash:容器启动以后,内部第一个执行的命令。这里是启动Bash,保证用户可以使用Shell。
8.列出容器
列出本机正在运行的容器,不过容器:
sudo docker container ls
列出本机所有容器,包括终止运行的容器
sudo docker container ls --all
9.终止/删除 容器
不会自己终止的容器,必须使用docker container kill 命令手动终止:
sudo docker container rm [contianerID]
删除指定的容器:
sudo docker container rm [containerID]
10.上传文件到本地的docker容器中
例如我在本地pull了一个Docker镜像,然后构建了一个容器,现需要往容器内传输文件, 首先需要确定docker容器的container_id,可以使用docker ps -a 查看你要操作的docker容器的container_id。
sudo docker cp 本机保存文件的全路径 container_id:docker容器全文件路径。
sudo docker cp /home/hsy/桌面/tcdata 4a2f08d2c1f8:/
11.从本地的docker容器中传到本地系统(Ubuntu)
sudo docker cp container_id:docker容器内的文件全路径 本机保存文件的全路径
sudo docker cp 4a2f08d2c1f8:/ /home/hsy/桌面