docker

作者: 菜菜子MJ | 来源:发表于2020-05-18 12:08 被阅读0次

安装

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 离线环境下下载 docker 相关的 rpm镜像包

https://download.docker.com/linux/centos/7/x86_64/edge/Packages/

如果是配置了国内镜像,并且镜像文件为/etc/docker/daemon.json,则修改文件后缀为.conf即可正常启动docker 服务

systemctl enable docker => 输出:Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

systemctl daemon-reload

systemctl start docker

systemctl status docker

docker info | grep "Docker Root Dir" 查看docker存放位置

生成

docker build -t="【镜像名:版本】" . (不要忘记最后的点,表示当前路径)#读取当前路径下的Dockerfile生成镜像

加载

docker load -i 【镜像包名】

启动

docker run -it 【镜像包名】 bash #启动一个新容器(-i 交互式 d 后台运行)

docker run -p 【host_port】:【container_port】【镜像包名】 bash (用-P(大写)标记时,docker会随机选择一个端口映射到容器)#绑定指定ip (查看端口是否被占用 netstat -anp| grep 端口号)

docker run --name 【name】 -it -v 【路径】【镜像包名】bash (-v 在容器中设置了一个挂载点,并将主机上的目录中的内容关联到容器的目录下)

nvidia-docker run -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,video 【镜像包名】bash (-e 设置环境变量)

docker start 【短id/name】 #启动一个Exited的老容器

docker attach 【短id/name】 #进入容器,退出后容器会变成Exited (Control+P+Control+Q退出不会Exited)

docker exec -it 【短id/name】bash #进入容器,退出后容器继续运行 (只能进入running的容器,可以先start再exec)

查看

版本说明:17年之前版本 0.1.0 ~ 1.13.1,17年3月发布第一个新系列版本17.03,随后每季度发布一个stable版

GPU驱动说明:nvidia-docker2支持1.12以上docker; 自从docker19.03版本起,不再需要nvidia-docker2辅助,docker可直接使用GPU资源

nvidia驱动查看: nvidia-smi docker版本查看: docker version docker信息查看: docker info nvidia-docker2版本查看: nvidia-docker version

docker images #查看所有镜像

docker ps -a #查看所有容器的短id name 运行状态

docker ps -l #查询最后一次创建的容器

docker inspect -f '{{.ID}}' 【获得的短id/name】(如不加-f会输出所有)#获取长ID

docker port 【容器ID】#查看端口映射

docker logs 【容器ID】#查看应用的信息

docker history 【镜像名称】 #查看镜像历史 --no-trunc 全部显示

交互

docker cp 【本地文件路径 ID全称:容器路径】#传输本地文件到docker

docker cp 【ID全称:容器文件路径 本地路径】#传输docker文件到本地

权限

docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令

sudo groupadd docker #添加docker用户组

sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中

newgrp docker #更新用户组

docker ps #测试docker命令是否可以使用sudo正常使用

停止

docker stop 【短id/name】#停止容器

删除

docker rm 【短id/name】#删除容器

docker rmi [镜像名] #删除镜像

docker ps -a | grep 【关键字】 | awk '{print $1}' #列出所有相关容器id

docker ps -a | grep 【关键字】 | awk '{print $1}' | xargs docker rm -f #删除所有相关容器id

停止所有的container,这样才能够删除其中的images:

docker stop $(docker ps -a -q)

如果想要删除所有container的话再加一个指令:

docker rm $(docker ps -a -q)

想要删除untagged images,也就是那些id为<None>的image的话可以用

docker rmi (docker images | grep "^<none>" | awk "{print3}")

要删除全部image的话

docker rmi $(docker images -q)

保存

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] #从容器打镜像

导出

docker save [OPTIONS] IMAGE [IMAGE...] (-o :输出到的文件)#生成镜像包

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG] #打tag

docker push IMAGE[:TAG] #推到镜像仓库

附录

Q: docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:279: applying cgroup configuration for process caused "mkdir /sys/fs/cgroup/memory/docker/xxx: cannot allocate memory"": unknown.

A: free -m 查看page cache ; echo 1 > /proc/sys/vm/drop_caches 清理page cache

https://github.com/opencontainers/runc/issues/1740

Q: 拿到一个新的镜像仓库地址xxx.xxx.xxx,怎么配置?

A: docker login xxx.xxx.xxx 登录新镜像;

vim ~/.docker/config.json 检查当前用户下保存的登录信息

echo xxxxxxxxxx | base64 -d 用base64解密用户名密码

Q: Cannot connect to the Docker daemon at xxx. Is the docker daemon running?

A: systemctl start docker

Q: 根目录磁盘满了

A: 根目录下的has文件会在几天内写满根目录磁盘,主要是出core的问题

touch /【路径】/disable_nss_core

写满的目录需要清理:

rm -rf /has/hdoctor/monitor/plugins/core.*

Q: 挪动默认安装目录时,遇到 rm: 无法删除"/var/lib/docker/overlay

A: umount /var/lib/docker/overlay

相关文章

  • docker学习

    docker镜像 docker容器 docker仓库 安装docker docker版本 docker分为社区版和...

  • Docker安装和运行

    获取Docker 安装Docker 验证安装 1、获取Docker Docker for Mac Docker f...

  • Docker知识手册

    Docker 容器 启动docker:docker start 查看docker运行状态:docker stats...

  • Docker简介

    章节介绍 # Docker是什么# Docker包括什么# Docker镜像# Docker编配# Docker还...

  • Docker 常用操作

    Docker docker: 18.09.4、nvidia-docker: 2.0.3 docker 19.03 ...

  • rancher+harbor离线安装

    安装docker,此docker为社区版docker。docker官方文档:https://docs.docker...

  • Linux之Docker

    Linux之Docker 目录 Docker简单介绍 在线Docker安装 离线Docker安装 Docker简单...

  • Docker常用命令

    Docker常用命令 Docker帮助命令 docker version:查看docker版本 docker in...

  • Docker基础操作

    Docker部署 Docker安装 镜像加速 Docker 基础命令 Docker镜像管理 搜索镜像docker ...

  • docker容器状态查看命令集

    docker inspect 用法 : docker inspect [docker名称/docker short...

网友评论

      本文标题:docker

      本文链接:https://www.haomeiwen.com/subject/uhluohtx.html