docker 使用记录

docker安装:

uname -r 查看当前的kernel版本
nvidia-docker安装:
方法一:https://github.com/NVIDIA/nvidia-docker
卸载旧版本docker

sudo apt-get remove docker docker-engine docker.io

更新系统软件

sudo apt-get update

安装依赖包

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

添加官方密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加仓库

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

再次更新软件

sudo apt-get update

安装docker ce

sudo apt-get install docker-ce

在生产系统上,可能会需要应该安装一个特定版本的Docker CE,而不是总是使用最新版本:列出可用的版本:

apt-cache madison docker-ce

安装特定的版本:

sudo apt-get install docker-ce=<VERSION>

查看docker版本

docker -v

查看docker服务是否启动:

  systemctl status docker

若未启动,则启动docker服务:

  sudo systemctl start docker

启动docker 后台服务

sudo service docker start

镜像加速

  sudo vim /etc/docker/daemon.json

添加:

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
	}

测试docker hello world

sudo docker run hello-world

Nvidia-docker安装:

#If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers

docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker

#Add the package repositories

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

#Install nvidia-docker2 and reload the Docker daemon configuration

sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

#Test nvidia-smi with the latest official CUDA image

docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

取消sudo的输入:

可以先通过指令查看是否有用户组:

cat /etc/group | grep docker

如果有跳过第一步!
第一步:创建docker用户组

sudo groupadd docker

第二步:用户加入到用户组

sudo usermod -aG docker 用户名

第三步:检查是否有效

cat /etc/group

第四步:重启docker-daemon

sudo systemctl restart docker

第五步:给docker.sock添加权限

sudo chmod a+rw /var/run/docker.sock

解决docker下载慢的问题:

进入docker容器中->vim /etc/apt/sources.list
全部换成aliyun的源,可以从你的本地电脑中拷贝参数,对一些参数作一些修改

docker命令集合:

搜索docker:

docker search xx

从docker云中拉取镜像文件:

docker pull Image:Tag
docker image pull xxx

docker ps -a 列出所有container
docker images 列出所有image
运行镜像文件:

 docker run -it --name "容器名" Image:Tag

docker rm containerID 删除容器
docker rmi ImageID 删除image
从主机拷贝文件到container中:

docker cp 主机目录 containerID:/home/Documents(docker容器中的目录)

#打开已创建的容器

docker attach containerID
docker attach containerName

#结束已打开的容器

docker pause containerID
docker pause containerName

#存一下image

docker commit -m "commit message" -a "author" containerID "new Image Name"

#保存image到本地

docker save -o 本机目录保存地址 imageID
e:docker save -o ~/1.tar ImageID
docker save -o 本机目录保存地址 imageName:Tag

#从本地加载image到docker容器

docker load -i 本机目录保存地址 

#从容器中导出xx.tar

docker export -o ~/xx.tar 容器名

#导入

docker import ~/xx.tar 

指定镜像的REPOSITORY、TAG

docker import - myubuntu:tag < /home/myubuntu-export-1204.tar

我们可以使用cat centos.tar | docker import - my/centos:v888 导入容器快照作为镜像
#跑nvidia-docker

docker run -it --runtime=nvidia --rm --name "your containnerName 你的容器名字,自己取"  Image:Tag 

#进入一个已经在运行容器

docker exec -it containerID /bin/bash
docker exec -it containerName /bin/bash

#指定IP运行

docker run -it --name "你设定的容器名" --network "host你的IP" Image:Tag

开始停止container:

docker stop containerID
docker start containerID

docker 历史查看:

docker history [OPTIONS] IMAGE

-H :以可读的格式打印镜像大小和日期,默认为true;
–no-trunc :显示完整的提交记录;
-q :仅列出提交记录ID。

exit 退出当前容器

–no-install-recommends参数来避免安装非必须的文件,从而减小镜像的体积
/etc/ 配置文件
/var/ 存储各种变化的文件

docker run 参数意思:
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
–name=“nginx-lb”: 为容器指定一个名称;
–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=“ritchie”: 设置环境变量;
–env-file=[]: 从指定文件读入环境变量;
–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
–link=[]: 添加链接到另一个容器;
–expose=[]: 开放一个端口或一组端口;

http服务可用:
sudo gedit /etc/docker/deamon.json
{
“insecure-registries”:[“node02.magedu.com:5000”]
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值