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. Taro自定义分享,canvas生成图片模糊有锯齿

    原因: 在移动端,手机的dpi是实际设计稿尺寸的2倍 设计稿尺寸: 210*168 canvas尺寸: 420 * 336 Taro.canvasToTempFilePath: width: 420, ...

  2. Spring注解之参数校验@Validated和@Valid

    @Validated和@Valid的区别 Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303 规范,是标准 JSR-303 的一个变 ...

  3. 使用中台 Admin.Core 实现了一个Razor模板的通用代码生成器

    前言 前面使用 Admin.Core 的代码生成器生成了通用代码生成器的基础模块 分组,模板,项目,项目模型,项目字段的基础功能,本篇继续完善,实现最核心的模板生成功能,并提供生成预览及代码文件压缩下 ...

  4. Vue 结合html2canvas和jsPDF实现html页面转pdf

    结合html2canvas和jsPDF实现html页面转pdf   By:授客 QQ:103355122   实践环境 win10   Vue 2.9.6 axios 0.18.0   html2ca ...

  5. pytest-req插件:更简单的做接口测试

    pytest-req插件:更简单的做接口测试 背景 我们经常会用到 pytest 和 requests 进行接口自动化测试. pytest 提供了非常方便的插件开发能力,在pytest中使用reque ...

  6. 《最新出炉》系列入门篇-Python+Playwright自动化测试-54- 上传文件(input控件) - 上篇

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.上传文件的API(input控 ...

  7. Redis持久化RDB与AOF介绍

    就是将内存中的数据通过rdb/aof进行持久化写入硬盘中 rdb就是进行持久化的快照 在指定的时间间隔内,执行数据集的时间点快照.这个快照文件称为(dump.rdb)RDB文件,Redis DataB ...

  8. scratch源码下载 | 炮轰僵尸

    程序说明: <炮轰僵尸>是一款基于Scratch平台制作的游戏程序,它采用了植物大战僵尸的经典场景.在游戏中,玩家需要控制一枚大炮来对抗不断入侵的僵尸.通过移动鼠标,玩家可以调整炮筒的方向 ...

  9. RPC和 HTTP协议

    RPC 和HTTP 的区别 服务发现 HTTP,知道服务域名,可以通过 DNS 解析 得到 服务的IP地址,从而进行访问 RPC 需要一个专门的中间服务去保存服务名和IP信息(注册中心,nacos.c ...

  10. 在Python中使用sqlalchemy来操作数据库的几个小总结

    在探索使用 FastAPI, SQLAlchemy, Pydantic,Redis, JWT 构建的项目的时候,其中数据库访问采用SQLAlchemy,并采用异步方式.数据库操作和控制器操作,采用基类 ...