docker相关命令学习

  • A+
所属分类:系统文档

一、安装

Debian安装Docker

旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:

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

使用 APT 镜像源 安装

Debian 8 Jessie 或者 Debian 9 Stretch 使用以下命令:

$ sudo apt-get update

$ sudo apt-get install \

     apt-transport-https \

     ca-certificates \

     curl \

     gnupg2 \

     lsb-release \

     software-properties-common

Debian 7 Wheezy 使用以下命令:

$ sudo apt-get update

$ sudo apt-get install \

     apt-transport-https \

     ca-certificates \

     curl \

     lsb-release \

     python-software-properties

安装 Docker CE

更新 apt 软件包缓存,并安装 docker-ce。

sudo apt-get update
sudo apt-get install docker-ce

使用脚本自动安装

$ curl -fsSL get.docker.com -o get-docker.sh

$ sudo sh get-docker.sh --mirror Aliyun

CentOS6下docker的安装

 1、首先关闭selinux:

setenforce 0

sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config

 2、在Fedora EPEL源中已经提供了docker-io包,下载安装epel:

rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo

 3、yum安装docker-io:

yum -y install docker-io


1、容器启动状态查看:

docker ps -a

docker相关命令学习

2、容器日志打印:

docker logs --tail="10" mytest(容器名)

docker相关命令学习docker logs -f mytest(容器名)

docker相关命令学习

docker logs [options] 容器获取容器的日志。

名字 默认值 描述

–details 显示提供给日志的额外细节

–follow或-f 按日志输出

–since 从某个时间开始显示,例如2013-01-02T13:23:37

–tail all 从日志末尾多少行开始显示

–timestamps或-t 显示时间戳

–until 打印某个时间以前的日志,例如 2013-01-02T13:23:37

--------------------- 

3、镜像启动,如:

docker run -p 8080:8080 -p 50000:50000 -v /home/docker/jenkins:/var/jenkins_home jenkins

报错:

touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied

Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000

sudo chown -R 1000:1000 /home/docker/jenkins

docker相关命令学习

4、Docker 容器镜像删除

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

docker stop $(docker ps -a -q)

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

docker rm $(docker ps -a -q)

2).查看当前有些什么images

docker images

3).删除images,通过image的id来指定删除谁

docker rmi <image id>

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

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

要删除全部image的话

docker rmi $(docker images -q)

5、批量删除Docker中已经停止的容器

方法一:

#显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID

sudo docker ps -a|grep Exited|awk '{print $1}'

#查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器

sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`

方法二: 

#删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)

sudo docker rm $(sudo docker ps -a -q)

方法三:

#根据容器的状态,删除Exited状态的容器

sudo docker rm $(sudo docker ps -qf status=exited)

方法四:

#Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器。

sudo docker container prune

#删除所有镜像

sudo docker rmi $(docker images -q)

mark:

https://www.cnblogs.com/yu-hailong/p/7628979.html

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: