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的不算

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

  1. Docker 容器更新,打包,上传到阿里云

    上几章讲了镜像的拉取和运行. 这次来尝试如何将已经运行的容器打包,封装成镜像,并且上传到阿里云上,为了别的地方下载和使用更加的方便. 首先,进入镜像,如果不清楚地,可以看下上一章. [root@VM_ ...

  2. Docker之Alpine制作镜像且上传至阿里云

    目的: Alpine制作jdk镜像 Alpine制作jre镜像(瘦身) Docker镜像上传至阿里云 Alpine制作jdk镜像 alpine Linux简介 Alpine Linux是一个轻型Lin ...

  3. docker制作自己的镜像并上传dockerhub

    1.首先注册自己的dockerhub账号,注册地址:https://hub.docker.com 2.在linux服务器登录自己的账号:docker login --username=qiaoyeye ...

  4. Docker下打包FastDFS镜像以及上传遇到的问题

    官方地址:https://github.com/happyfish100/fastdfs 一.先下载个包,然后解压(自己找个目录下载即可) [root@localhost soft]# wget ht ...

  5. php上传文件与图片到七牛的实例详解

    上传文件到七牛最简单的方式就是使用七牛官方最新的SDK 用composer安装PHP SDK composer require qiniu/php-sdk 上传文件到七牛 use Qiniu\Auth ...

  6. Git、TortoiseGit中文安装教程,如何注册Gitee账号进行代码提交,上传代码后主页贡献度没显示绿点(详解)

    今天给大家分享的是 Git 软件和 TortoiseGit 图形化软件的详细安装教程以及如何在 gitee 上进行代码提交. 首先我也是个刚接触 gitee 的一个小白用户,这些都是自己一边学一边记录 ...

  7. SFTP上传下载文件、文件夹常用操作

    SFTP上传下载文件.文件夹常用操作 1.查看上传下载目录lpwd 2.改变上传和下载的目录(例如D盘):lcd  d:/ 3.查看当前路径pwd 4.下载文件(例如我要将服务器上tomcat的日志文 ...

  8. 【liunx命令】上传下载文件的方法

    scp   帮助命令: man scp   scp功能: 下载远程文件或者目录到本地, 如果想上传或者想下载目录,最好的办法是采用tar压缩一下,是最明智的选择.   从远程主机 下载东西到 本地电脑 ...

  9. JAVAWEB之文件的上传下载

    文件上传下载 文件上传: 本篇文章使用的文件上传的例子使用的都是原生技术,servelt+jdbc+fileupload插件,这也是笔者的习惯,当接触到某些从未接触过的东西时,总是喜欢用最原始的东西将 ...

  10. 4.1 - FTP文件上传下载

    题目:开发一个支持多用户同时在线的FTP程序要求:1.用户加密认证2.允许同时多用户登录3.每个用户有自己的家目录,且只能访问自己的家目录4.对用户进行磁盘配额,每个用户的可用空间不同5.允许用户在f ...

随机推荐

  1. 全国产!全志T3+Logos FPGA核心板(4核ARM Cortex-A7)规格书

    核心板简介 创龙科技SOM-TLT3F是一款基于全志科技T3四核ARM Cortex-A7处理器 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核全国产工业核心板,ARM C ...

  2. Vue3 整理

    前言 vue2基础篇链接:https://www.cnblogs.com/xiegongzi/p/15782921.html vue2组件化开发篇链接:https://www.cnblogs.com/ ...

  3. 韦东山freeRTOS系列教程之【第六章】信号量(semaphore)

    目录 系列教程总目录 概述 6.1 信号量的特性 6.1.1 信号量的常规操作 6.1.2 信号量跟队列的对比 6.1.3 两种信号量的对比 6.2 信号量函数 6.2.1 创建 6.2.2 删除 6 ...

  4. 基于Docker安装项目管理工具禅道

    禅道是通用的项目管理软件 完整支持敏捷项目模型.瀑布项目模型.看板模型 内置项目集.产品.项目和执行四个管理框架 支持CMMI标准的落地实施 下载镜像 docker pull easysoft/zen ...

  5. Linux自己制作rpm包

    制作rpm包 由源码包---->rpm包 安装制作rpm包工具包rpm-build 在制作过程中需要源码包和配置文件 rpmbuild制作rpm包的原理: 1.首先rpmbuild会先将源码包进 ...

  6. 数据仓库建模工具之一——Hive学习第二天

    Hive的概述 1.Hive基本概念 1.1 Hive简介 Hive本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据存储,说白了hive可以理解为一个将SQL转换为Map ...

  7. [oeasy]python0120_英语的崛起_英文字符_小写字母的由来_不列颠帝国

    各语言字符编码 回忆上次内容 罗马 承袭了 希腊的文化 学习了 希腊的字符   拥有 罗马帝国的战力 基督教文化的影响     ​   添加图片注释,不超过 140 字(可选)   这个时候 不列颠 ...

  8. oeasy 教您玩转 linux 之 010301 电子宠物 pet

    我们来回顾一下 上一部分我们都讲了什么? 中️文诗词fortune=zh的使用 建立自己的彩色诗词库 通过pip把输出结果交给cowsay或boxes 我们这次讲一讲桌面的一些应用 oneko 我们可 ...

  9. [oeasy]python0045_转化为10进制数_int_integrate_integer_entire_整数

    转化为10进制 回忆上次内容 上这次总结了四种进制 函数名 对应单词 进制类型 数字事例 前缀 bin() binary 2 0b1100001 0b oct() octal 8 0o141 0o h ...

  10. php执行出现权限问题