• Docker容器常用操作命令(镜像的上传、下载、导入、导出、创建、删除、修改、启动等)详解


    1、docker镜像下载

    docker pull [options] name [:tag@digest]

     name后边可以跟镜像标签或者镜像摘要(其实就是镜像的版本),如果不加任何东西,则会默认是在docker hub中下载:latest(最新版)的

     参数详情:

    名称

    默认

    描述

    --all-tags, a

     

    下载仓库所有镜像

    --disable-content-trust

    true

    跳过镜像校验

    --platform

     

    设置镜像所属平台, 如果有多个镜像服务.

    2、查看当前docker镜像

    docker images [options] [repository[:tag]]

     images后边可以加要查看的镜像名称和版本

    3、运行镜像

    docker run [options] image [:tag] [command] [arg...]

    建议使用:docker run -dit [id]

    参数说明:

     -d, --detach=false 指定容器运行于前台还是后台,默认为false

     -i, --interactive=false 打开STDIN,用于控制台交互

     -t, --tty=false 分配tty设备,该可以支持终端登录,默认为false

     -u, --user="" 指定容器的用户

     -a, --attach=[] 登录容器(必须是以docker run -d启动的容器)

     -w, --workdir="" 指定容器的工作目录

     -c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景使用

     -e, --env=[] 指定环境变量,容器中可以使用该环境变量

     -m, --memory="" 指定容器的内存上限

     -P, --publish-all=false 指定容器暴露的端口

     -p, --publish=[] 指定容器暴露的端口

     -h, --hostname="" 指定容器的主机名

     -v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录

     --volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录

     --cap-add=[] 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities

     --cap-drop=[] 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities

     --cidfile="" 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法

     --cpuset="" 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU

     --device=[] 添加主机设备给容器,相当于设备直通

     --dns=[] 指定容器的dns服务器

     --dns-search=[] 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件

     --entrypoint="" 覆盖image的入口点

     --env-file=[] 指定环境变量文件,文件格式为每行一个环境变量

     --expose=[] 指定容器暴露的端口,即修改镜像的暴露端口

     --link=[] 指定容器间的关联,使用其他容器的IP、env等信息

     --lxc-conf=[] 指定容器的配置文件,只有在指定--exec-driver=lxc时使用

     --name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字

     --net="bridge" 容器网络设置:

     bridge 使用docker daemon指定的网桥

     host //容器使用主机的网络

     container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源

     none 容器使用自己的网络(类似--net=bridge),但是不进行配置

     --privileged=false 指定容器是否为特权容器,特权容器拥有所有的capabilities

     --restart="no" 指定容器停止后的重启策略:

     no:容器退出时不重启

     on-failure:容器故障退出(返回值非零)时重启

     always:容器退出时总是重启

     --rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)

     --sig-proxy=true 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理

    4、查看正在运行的docker容器

    docker ps

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

     -q :静默模式,只显示容器编号。

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

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

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

     -n :列出最近创建的n个容器。

     --no-trunc :不截断输出。

     -s :显示总的文件大小。

    5、进入docker容器内部的shell

    docker exec -it [name] bash

     -d,以后台方式执行命令;

     -e,设置环境变量

     -i,交互模式

     -t,设置TTY

     -u,用户名或UID,例如myuser:myusergroup

    6、docker build 构建镜像

    docker build [OPTIONS] PATH | URL | -

    OPTIONS说明:

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

     -m :设置内存最大值;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     --ulimit :Ulimit配置。

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

    7、docker删除容器

    1)首先查看系统现有的容器

    docker ps -a

    很多是测试产生的容器,现在将他们删除,执行:

    docker rm [c9b077c1e8b2 97b22f5efeca]

     c9b077c1e8b2、97b22f5efeca为要删除容器的id

     

    2)删除正在运行中的容器

    此时id为 ae32dddeadbf 的容器正在运行中

    我们直接删除它是会报错的:

    这时加上参数 -f (强制删除)即可

    docker rm -f ae32dddeadbf

     

    3)删除所有的容器

    先停止所有运行中的容器:

    docker stop $(docker ps -q)

     

    再查看所有的容器:

    docker ps -aq

    删除所有的容器:

    docker rm $(docker ps -aq)

    8、docker删除镜像

    先查看当前镜像:

    docker images

    删除镜像:

    docker rmi ceshicopy2

     ok,已经删除

    需要注意的是,删除镜像时,必须保证没有容器正在基于此镜像运行着,所以需要先删除基于此镜像的容器,再删除镜像

    9、docker镜像的导入导出

    先查看当前镜像

    docker images

    1)docker镜像的导出

    docker save

    用法:docker save > 【目标文件】 【源镜像名】

    示例:

    docker save > nginx.tar hub.c.163.com/library/nginx

    2)docker镜像的导入

    docker load

    用法:docker load < 【导入的镜像】

    示例:

    docker load < nginx.tar

    10、docker容器的导入导出

    查看当前容器

    docker ps -a

    1)容器的导出

    docker export

    用法:docker export > 【目标文件】 【源镜像名】

    示例:

    docker export > jpress.tar 8bf49fa5ca97

    2)容器的导入

    docker import

    用法:docker import 【导入的容器】 【导入后修改的名字】

    示例:

    docker import jpress.tar jpress:1

    注意:

    容器导入后也会形成镜像,然后再运行此镜像即可!

    11、保存修改后的容器内容

    docker commit  [容器id]  [修改后的名字:tag]

    示例:

    docker commit 03b79d8cef9d jpmysql

    已经生成新的镜像,基于修改后的容器。

    直接运行即可

    12、镜像上传至私有仓库

    docker push [OPTIONS] NAME[:TAG]

    示例:

    1、首先登录docker hub

    docker login

    2、上传镜像

    docker push runningrookie/ubuntu:16.04

    注意:上传此镜像前,需要先把镜像的名称改为[用户名]/ubuntu:[tag]格式,前边一定要是自己登录账号的用户名;

    注意:[用户名]表示你的用户名,/ubuntu表示这个叫ubuntu的存储库,后边的:[tag]才是你上传到docker hub后显示的标签名称。

    3、进入docker hub查看

    13、docker容器设置开机自启

    1、用法:

    启动时加--restart=always参数

     

    2、示例:

    docker run --restart=always .....

    如果创建时未指定 --restart=always ,可通过update 命令设置:

    docker update --restart=always xxx

    若想要关闭自启动,可执行

    docker update --restart=no xxx

     

    3、参数:

     no  不自动重启容器. (默认值)

     on-failure  容器发生error而退出(容器退出状态不为0)重启容器,可以指定重启的最大次数,如:on-failure:10

     unless-stopped  在容器已经stop掉或Docker stoped/restarted的时候才重启容器

     always  在容器已经stop掉或Docker stoped/restarted的时候才重启容器,手动stop的不算

  • 相关阅读:
    帆软查看注册用户的数据库信息
    [已解决]报错:sql server 返回结果出现中文乱码
    消除点击单元格时出现的黑框
    python tcp udp函数装饰器,无需亲自手写socket连接代码。
    介绍一个python代码自动运行在远程机器的三方包。
    python paramiko上传文件夹到linux
    filebeat自定义索引名,filebeat索引模板
    mydumper
    mysql误删ibd文件
    mysql update多字段时引发的一个问题
  • 原文地址:https://www.cnblogs.com/v-fan/p/12509919.html
Copyright © 2020-2023  润新知