zoukankan      html  css  js  c++  java
  • docker 命令

    docker分为docker-ce和docker-ee,docker-ce是社区免费版,docker-ee是企业收费版

    一.安装docker-ce

    传统安装方法是:

    1.yum update #跟新yum

    2.yum install -y yum-utils #安装yum-config-manager

    3.yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo

    4.yum makecache

    5.yum install docker-ce

    由于这里用的repo是国外的,下载起来是相当的慢,所以我改成了国内的源,手动创建了简单repo如下:

    [root@localhost yum.repos.d]# cat docker.repo

    [docker]

    name=CentOS-7-docker

    baseurl=https://mirrors.ustc.edu.cn/docker-ce/linux/centos/7/x86_64/stable

    gpgcheck=0

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

    然后yum makecache; yum install docker-ce,比用国外的源确实快多了

    三.启动docker

    有两种方式都可以启动docker

    1.临时性的启动,即不会随着开机而启动 

    dockerd &

    2.永久性的启动,即开机就启动

    systemctl enable docker 

    systemctl start docker

    安装启动后,检查docker:

    四. docker命令

    docker info 显示Docker 系统信息,包括镜像和容器数

    docker version 显示Docker版本信息

    镜像仓库

    • docker pull 拉取镜像

    docker pull  path/name:tag   #path 和tag可选,默认path是docker hub的library,默认tag是latest

    参数:

    -a:拉取所有tag的镜像

    --disbable-content-trust :略镜像的校验,默认开启

    • login/logout 登陆/退出镜像仓库

    docker login [镜像仓库地址] -u  user -p password  #如未指定镜像仓库地址,默认登陆到Docer Hub

    docker logout

     

    • docker push 上传镜像,先要登陆到镜像仓库

    docker push name:tag 

    参数:

    --disable-content-trust ,默认开启

    • docker search 从Docker Hub 查找镜像

    参数:

    --automated :只列出自动构建的镜像

    --no-trunc :显示完整的镜像描述

    -s n :列出收藏数大于n次的镜像

    • docker imagesdocker image ls ,列出镜像

    参数:

    -a:列出所有的镜像

    -f:列出满足条件的镜像,例如docker ls -f before=redis:2.1 ;docker ls -f since=redis:2.1

    -q:只显示镜像ID,例如docker ls -q,docker ls -q redis

    --format:指定返回的模板文件

    --no-trunc:显示完整的镜像信息

     

    • docker rmi 删除镜像

    参数:

    -f :强制删除

     

    • docker prune 删除未被使用的docker对象,和未被tag标记和未被容器使用的镜像

    用法:

    docker image prune  删除所有未被容器使用的对象和未被tag标记的对象

    docker container prune 删除所有停止运行的对象

    docker volume prune 删除未被挂载的卷

    docker network prune 删除所有网络

    docker system prune 删除所有资源

     

    • docker tag 标记本地镜像

    用法:

    docker tag ubuntu:16.04 ubuntu:v1 将ubuntu 标记为ubuntu:v1镜像

     

    • docker history 查看镜像的创建历史

     

    • docker save; docker load; 和docker export ;docker import  保存归档镜像

    用法:

    docker save -o my_image.tar ubuntu:16.04 导出镜像

    docker save ubuntu:16.04 > ubuntu.tar 导出镜像

    docker load < ubuntu.tar 导入镜像

    docker load -i ubuntu.tar 导入镜像

    dcoker export ubuntu:16.04 > ubuntu.tar 导出镜像

    docker import ubuntu.tar ubuntu:v1 导入镜像

     

    • docker build 创建镜像

    参数:

    --build-arg=[] :设置镜像创建时的变量;

    --cpu-shares :设置 cpu 使用权重;

    --cpu-period :限制 CPU CFS周期;

    --cpu-quota :限制 CPU CFS配额;

    --cpuset-cpus :指定使用的CPU id;

    --cpuset-mems :指定使用的内存 id;

    --disable-content-trust :忽略校验,默认开启;

    -f :指定要使用的Dockerfile路径;

    --force-rm :设置镜像过程中删除中间容器;

    --isolation :使用容器隔离技术;

    --label=[] :设置镜像使用的元数据;

    -m :设置内存最大值;

    --memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;

    --no-cache :创建镜像的过程不使用缓存;

    --pull :尝试去更新镜像的新版本;

    --quiet, -q :安静模式,成功后只输出镜像 ID;

    --rm :设置镜像成功后删除中间容器;

    --shm-size :设置/dev/shm的大小,默认值是64M;

    --ulimit :Ulimit配置。

    --tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

    --network: 默认 default。在构建期间设置RUN指令的网络模式

     

    docker build -t ubuntu:v1 .  #使用当前目录的Dockerfile创建镜像

    docker build github.com/creack/docker-firefox 使用网络上的Dockerfile创建镜像

    docker build -f /home/test/Dockerfile  .   #使用指定的Dockerfile

     

    容器

    容器的7种状态:

    created (已创建)

    restarting (重启中)

    running (运行中)

    removing (迁移中)

    paused (暂停)

    exited (停止)

    dead (死亡)

    • docker ps 列出容器

    参数:

    -a :显示所有的容器,包括未运行的

    -f:根据条件过滤显示的内容

    --format:指定返回的模板文件

    -l:显示最近创建的容器

    -n 5:显示最近创建的5个容器

    -q:只显示容器编号

    -s:显示总的文件大小

     

    • docker inspect 获取容器/镜像的元数据

    参数:

    -f :指定返回的模板文件

    -s:显示总文件大小

    --type:为指定类型返回JSON

     

    • docker top 查看容器中运行的进程信息

    有时并不一定要进入容器执行top,而且容器不一定有top命令,这时可以用docker top来查看容器中正在运行的进程

    用法:

    docker top 【container】

     

    • docker attach 连接到正在运行的容器

    可以同时attach 同一个容器来屏幕共享,与screen 命令类似

    Ctrl-C可以detach 容器,为了避免Ctrl-C退出容器时将正在运行的进程也退出了,可以加上--sig-proxy=false,Ctrl-C的信号直接被docker attach响应

    用法:

    docker attach 【container】

     

    • docker events 从服务器获取实时事件

    参数:

    -f:根据条件过滤

    --since:显示指定时间后面的事件

    --until:显示到指定的时间为止

     

    • docker logs 获取容器日志

    参数:

    -f:日志输出,例如docker logs -f mynginx

    --since:指定时间后的所有日志

    -t:显示时间戳

    --tiai n :列出最新的n条日志,例如docker logs --since "2016-07-01" --tail=10 mynginx

     

    • docker wait 等待容器运行并打印容器退出的状态码

    用法:

    docker wait container

     

    • docker port 查看端口映射

    用法:

    docker port mymysql

    =>3306/tcp -> 0.0.0.0:3306

     

    • docker commit 从容器创建一个新的镜像

    参数:

    -a :提交镜像的作者

    -c :使用Dockerfile来创建镜像

    -m:提交时的说明文字

    -p: 在commit时将容器暂停

     

    • docker cp 容器与主机之间的数据拷贝

    参数:

    -L :保持源目标中的链接

    用法:

    docker cp src_file container:/dst_file

     

    • docker diff 检查容器里文件结构的更改

    用法:

    docker diff container

     

    • docker run 创建一个新的容器

    参数:

    -a stdin :指定标准输入输出类型,可选STDIN,STDOUT,STDERR

    -d:后台运行

    -i:以交互模式运行,通常与-t一起使用,例如docker run -i -t mysql:v1 /bin/bash

    -P:随机端口映射

    -p:指定端口映射,主机端口:容器端口

    -t:分配一个终端,通常与-i一起使用

    --name:为容器指定一个名称

    --dns:指定容器的dns,默认和主机一致

    --dns-search example.com:指定容器DNS搜索域名,默认和主机一致

    -h: 指定容器的hostname

    -e :设定容器的环境变量

    --env-file=[]:从指定文件读入环境变量

    --cpuset="0,1,2,25-27":绑定CPU 的core

    -m:设置容器使用最大内存

    --net="bridge":指定容器连接的网络类型,可选bridge;host;none;container

    --link=[]:添加链接到令一个容器

    --expose=[]:开发一个端口或一组端口

    --volume,-v:绑定一个卷

     –privileged=true :

    大约在0.6版,privileged被引入docker。
    使用该参数,container内的root拥有真正的root权限。
    否则,container内的root只是外部的一个普通用户权限。
    privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
    甚至允许你在docker容器中启动docker容器

    • docker start/stop/restart 启动/停止/重启 容器

     

    • docker kill 杀掉一个运行中的进程

    参数:

    -s:向容器发送一个信号,例如docker kill -s KILL mysql:v1

    docker kill 与docker stop区别:

    docker kill :强制终止容器运行,类似与断电重插

    docker stop:尝试让容器停止运行,类似与reboot

     

    • docker rm 删除容器

    参数:

    -f:强制删除

    -l:删除容器间的网络连接

    -v:删除容器关联的卷

     

    docker pause/unpasu 暂停/恢复 容器中所有的进程

     

    docker create 创建一个新的容器但不启动它

     

    docker exec 在运行的容器中执行命令

    参数:

    -d:在后台运行

    -t:分配一个终端

    -i:保持STDIN打开

    用法:

    docker exec -it mysql:v1 /bin/bash   /test/sh

    docker exec -it containerID /bin/bash 进入容器

     

    • docker system df #查看镜像体积

    由于镜像是分层存储的,可以继承,复用,所以不同的镜像可以使用相同的基础镜像,所以docker images 列表中的所有像体积总和并非是所占的硬盘空间大小

    补充:ctrl+P+Q 退出容器不关闭容器,一般情况exit 退出容器后,容器就关掉了

  • 相关阅读:
    2020面试有感(1)
    多线程与异步
    GP-荧光免疫分析仪SDK 协议
    FastReport模板设计和调用
    EF的多线程与分库架构设计实现(2)
    HTML页面转化为带有水印的PDF文件
    利用 html2canvas+jsPDF 把 HTML元素 转化为PDF文件,以及遇到的坑
    前端json数据格式化显示
    单元测试——引入Vuex
    单元测试——引入vue-router和APP.vue文件
  • 原文地址:https://www.cnblogs.com/xia-dong/p/11559875.html
Copyright © 2011-2022 走看看