Docker基本概念
仓库(Repository):用来保存镜像 Docker Registry
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,
镜像是静态的定义,容器是镜像运行时的实体。
容器可以被创建、启动、停止、删除、暂停等。
安装的:Docker 主机(Host) Docker Machine
使用的 Docker 客户端(Client)
安装的Docker需要的
docker
nvidia-docker
需要提前确认GPU的支持
Docker的使用
docker images : 列出本地镜像
使用 docker run 命令来在容器内运行一个应用程序
docker stats --help 帮助系统
-- docker 命令来查看到 Docker 客户端的所有命令选项
-- Docker 公共仓库 Docker Hub docker search centos
-- Docker 私有仓库
Docker容器状态
created(已创建) restarting(重启中)
running 或 Up(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
-- 启动或者关闭
sudo systemctl start docker
sudo systemctl stop docker
sudo systemctl restart docker
Docker常用命令
查看docker是否安装成功 docker version
-- 查看镜像 sudo docker images
-- 查看容器 sudo docker ps -a
## cd docker_images/
sudo docker save -o ufoy.tar ufoy-docker
sudo docker load -i ufoy.tar # docker load : 导入使用 docker save 命令导出的镜像。 --input , -i : 指定导入的文件
sudo docker inspect *********
sudo docker history *********
说明:
docker inspect 用于查看docker对象的底层基础信息。
包括容器的id、创建时间、运行状态、启动参数、目录挂载、网路配置等等。
另外,该命令也可以用来查看docker镜像的信息。
sudo docker run --runtime=nvidia
sudo nvidia-docker start "***
sudo nvidia-docker exec -it "***" /bin/bash
-- docker exec 进入容器内部
##停止和删除
docker stop 你的_CONTAINER ID
docker rm 你的CONTAINER_ID
使用docker commit命令制作docker镜像
docker history命令用来显示镜像创建的历史记录信息-再现完整构建命令
docker commit 命令主要功能是把当前容器提交打包为镜像
以使用docker commit构建镜像,但是推荐使用 Dockerfile 构建镜像(构建指令和设置指令)
# sudo docker info
其他命令和说明
docker tag
Dockerfile 的指令每执行一次都会在 docker 上新建一层。
指令: COPY ADD CMD ENTRYPOINT ENV ARG VOLUME EXPOSE WORKDIR
Linux系统
01.ssh
ssh -p 20 user@host
ssh-keygen生成一个自己的公钥 新生成两个文件:id_rsa.pub 和 id_rsa 前者是你的公钥,后者是你的私钥
公钥传送到远程主机host上面:
$ ssh-copy-id user@host
02.scp file_source file_target
-r: 递归复制整个目录
##本地推远程
scp /home/snn_id/docker.sh test_id@100.100.100.100:/home/test_id/
scp -r snn_id@10.10.10.10:/home/ss_id/docker.sh /home/test_id/
03.Linux tee命令用于读取标准输入的数据,并将其内容输出成文件
sudo tee /etc/docker/daemon.json <<EOF
{
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
其中: <<EOF,以EOF输入字符为标准输入结束
命令tee与重定向的区别
重定向,是将读取的内容输出到指定文件中,在屏幕上并不显示
命令tee,在屏幕上显示的同时,将读取的内容也重定向到指定文件中
类似
sed ‘s/\/home\/ballchang\/下载\/hadoop3\/jdk/\/usr\/lib\/jvm\/java-1.8.0-openjdk-amd64/‘ /home/hadoop/hadoop-env.sh
# -i :直接修改读取的文件内容,而不是输出到终端
sed -i ‘s/\/home\/ballchang\/下载\/hadoop3\/jdk/\/usr\/lib\/jvm\/java-1.8.0-openjdk-amd64/‘ /home/hadoop/hadoop-env.sh
sudo pkill -SIGHUP dockerd ps kill
04.添加软件包存储库
sudo apt-key add -
distribution
Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具
APT使用一个文件列出可获得软件包的镜像站点地址,这个文件就是/etc/apt/sources.list
格式如下: deb [web或ftp地址] [发行版名字] [main/contrib/non-free]
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
确保软件包列表是最新的:apt-get update
05.sudo usermod -aG sudo your_name
参考
nvidia-container-runtime https://github.com/nvidia/nvidia-container-runtime#docker-engine-setup
【Docker】Ubuntu16.04安装docker https://blog.csdn.net/heiheiya/article/details/102820157
【Docker】Ubuntu16.04安装nvidia-docker2 https://blog.csdn.net/heiheiya/article/details/102834222
【Docker】nvdia-docker2 docker-ce https://blog.csdn.net/heiheiya/article/details/102834703
Linux下Docker的安装和使用