操作环境:mac OS 10.14.6

docker版本:10.03.1

终端:iterm2 3.3

时间:2019年8月

容器相当于镜像的实例,镜像相当于只读模板,容器在镜像所有层级之上创建了一个可写层,所有操作都将在这一层级进行。

运行

$ docker run [参数] 镜像 [命令] [命令参数...]

# 执行命令, 执行后自动进入容器bash
$ docekr run -it ubuntu:latest bash

执行命令后,如果本地没有对应的镜像,docker会先到指定的仓库进行pull, 默认为:hub.docker.com

使用命令docker run --help 获取所有的帮助

使用run后docker执行的操作包括但不限于:

* 检查本地是否存在指定的镜像,不存在就从公有仓库下载

* 利用镜像创建并启动一个容器

* 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层

* 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去

* 从地址池配置一个 ip 地址给容器

* 执行用户指定的应用程序

* 执行完毕后容器被终止

添加参数-d, 让容器进入后台运行,即守护模式

# 普通运行
$ docker run -it ubuntu echo "hello docker run" # 后台运行
$ docker run -it -d ubuntu echo "hello docker background" # 查看后台容器输出
$ docker logs <container> # 具体查看操作图

守护模式中的容器, 使用exec进入

docker exec [参数] 镜像 [命令] [命令参数...]

说明: 进入守护模式时,docker将返回容器完整ID

使用exec通过容器id进入容器内

查看容器

# 查看运行中的容器
$ docker ps # 查看所有容器
$ docker ps -a

停止

$ docker stop [参数] 镜像 [镜像...]

# 新开一个终端,执行命令,停止ubuntu:latest
$ docker stop 4e7 # 通过使用容器的id停止容器

注意:通过id进行操作,需要输入ID的前3位及以上16进制字符

启动停止后的容器

$ docker start [参数] 镜像 [镜像...]

$ docker start 4e7 # 通过容器ID启动容器

保存容器的修改commit

不推荐使用commit构建镜像,会造成层级文件的混乱,不知道什么文件被修改、被添加了,最主要是整个构建过程使用的命令是不可知的,由此生成的镜像被称为黑箱镜像,这样的镜像只有使用命令的人才知道具体使用什么命令。后续维护成本极高。

$ docker commit [选项] <容器> [<仓库名>[:<标签>]]

# 使用之前后台运行的ubuntu
$ docker commit --message 修改了什么 b15 zeryter-ubuntu:v1.0

说明: --message 添加修改说明

如果只是迁移容器而进行commit构建镜像,有更好的办法export & import

导出&导入

导出

docker export [选项] 容器

# 使用ubuntu容器的ID 将容器导出为  ubuntu.tar
docekr export ubuntu_ID > ubuntu.tar
# 另一种导出方式, 使用参数-o指定导出文件
docker export -o ubuntu.tar ubuntu_ID

导入

$ docker import [选项] 文件|文件URL|- [镜像名称[:标签]]
# 将导出为tar包的容器,导入时将保存为镜像,导入后使用images查看导入信息

导入tar包后,docker会将生成的镜像唯一ID返回

import导入包支持URL,docker将自动下载对应的包,其中包可以是.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz。

删除&清理

$ docker rm [OPTIONS] CONTAINER [CONTAINER...]

rm只能删除已经停止的容器

docker笔记(3)—— 容器的更多相关文章

  1. Docker笔记--操作容器命令

    Docker笔记--操作容器命令 创建容器 docker [container] create-- 创建容器,使用docker [container] create命令新建的容器处于停止状态,可以使用 ...

  2. Docker学习笔记之使用 Docker Compose 管理容器

    0x00 概述 通过之前的介绍,我们已经基本掌握了构建.运行容器的方法,但这还远远不够,由于 Docker 采用轻量级容器的设计,每个容器一般只运行一个软件,而目前绝大多数应用系统都绝不是一个软件所能 ...

  3. Docker学习笔记——制作容器与容器概念

    Docker能做些什么? 1.docker能够解决虚拟机能够解决的问题 2.隔离应用依赖 3.创建应用镜像并复制 4.创建容易分发的即启即用的应用 5.docker的想法是创建软件程序可移植的轻量容器 ...

  4. Docker笔记(六):容器管理

    原文地址:http://blog.jboost.cn/2019/07/21/docker-6.html 容器是Docker中的另一核心概念,在Docker中,应用的运行都是在容器内进行的,容器则基于镜 ...

  5. docker笔记2--镜像容器基本使用

    1 docker的安装 系统:centos7 (1)配置好yum (2)yum -y install docker (3)查看状态 systemctl status docker 2 docker镜像 ...

  6. 【应用容器引擎】Docker笔记

    一.Docker是什么? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化.它是一个轻量级容器技 ...

  7. 四、【Docker笔记】Docker容器

    容器是Docker的另一个核心概念,容器就是镜像的一个运行实例,只是它具有一个可写的文件层,而镜像是一个只读的文件. 一.创建容器 1.新建容器 我们可以使用 docker create 命令来创建一 ...

  8. Docker笔记一:Docker介绍

    目录 什么是Docker? Docker的核心概念 Docker镜像命令 Docker容器命令 Docker实战 查看我的镜像 启动Redis Docker中国镜像加速 血与泪的教训 什么是Docke ...

  9. docker镜像与容器

    目录 docker镜像与容器 概述 分层存储 镜像与容器 删除镜像与容器 将容器中的改动提交到镜像 慎用 docker commit--构建镜像推荐使用dockerfile docker镜像与容器 概 ...

随机推荐

  1. BZOJ4886 [Lydsy1705月赛]叠塔游戏[基环树]

    很妙的一道题. 由于本人过于zz,不会这道题,通过厚颜无耻翻阅题解无数终于懂了这道题,所以这里转载一位神仙的blog. 没有看懂?没事,再来一篇. 这题个人认为主要在于转化题意和建图,这两点想通了应该 ...

  2. [].slice.call(arguments,1) 个人理解

    var arr = []; [] == arr; 假设 var arr = [1,2,3,4,5]; 那么 arr.slice(1,2) == [2]; 通过 slice.call 才能使用call显 ...

  3. POI做题笔记

    POI2011 Conspiracy (2-SAT) Description \(n\leq 5000\) Solution 发现可拆点然后使用2-SAT做,由于特殊的关系,可以证明每次只能交换两个集 ...

  4. Javascritp 数据结构和二叉树算法

    1,所有圆圈都是一个节点,里面的数字就是节点的值.8上面没有父节点,那么8就是根节点,而4,7,13没有子节点了,称之为叶子结点.其他的称之为:中间结点. 2,8节点是3和10的父节点,3是8的左孩子 ...

  5. 创建一个新的laravel

    //创建laravelcomposer create-project laravel/laravel shop 安装好 Laravel 之后的下一步是设置你的应用密钥为随机字符串.如果你通过 comp ...

  6. IntelliJ IDEA 创建 Git 分支并且 Push 到远程

    在 IntelliJ 的右下角,你可以看到当前的 Git 分支,然后你可以单击这个分支后,在弹出的界面的最上方有一个新建分支的选项. 然后再弹出的界面中,输入你要创建的分支名称后回车输入. 然后从项目 ...

  7. Tomcat怎么关闭日志输出

    tomcat中禁用catalina.out的输出,又可能很大. 1.直接修改catalina.sh文件的输出语句. 在文件中找到以下内容. if [ -z "$CATALINA_OUT&qu ...

  8. JQuery动画之滑入滑出动画

    1. 滑入动画(类似于商店的卷帘门) $(selector).slideDown(speed, 回调函数); 解释: 此语句实现的功能为, 在XX时间内, 下拉动画, 显现元素. 当 slideDow ...

  9. python_re模块

    正则表达式:http://www.regexlab.com/zh/regref.htm

  10. codeforces gym #101161H - Witcher Potion(状压DP)

    题目链接: http://codeforces.com/gym/101161/attachments 题意: 总共有n瓶药可供选择 每瓶药可以增加$e_i$点体力,和$p_i$点毒性 每分钟消耗1点毒 ...