Docker 0x04: Docker 基本使用

目录

  • Docker 基本使用

    • 第一步:明确要使用容器运行的应用的镜像相关
    • 第二步:运行一个官方nginx应用
    • 第三步:单纯下载镜像,pull
    • 第四步:设置国内docker-hub
    • 第五步:列出已有镜像和镜像物理目录在哪里
    • 第六步:本地导入导出镜像及修改名字和tag
    • 第八步: 宿主和容器互相复制数据
    • 第九步: 通过dockerfile定制我们自己的镜像

Docker 基本使用

从利用docker镜像,跑起容器开始。使用现成的镜像。

第一步:明确要使用容器运行的应用的镜像相关

  1. 明确镜像名(仓库名)
  2. 是否指定明确的镜像tag版本
  3. 查看本地(本地叫什么?)有哪些镜像:> docker images -a
  4. 如果本地没有,会从远程的registry中
  5. 对于从docker官方registry,没有指定用户名称空间的话,会根据在官方library名称空间中寻找,如果没找到会提示没找到。非官方的一定要带上用户名/仓库名 这样才会从指定用户下的仓库拉取。

第二步:运行一个官方nginx应用

docker run --name nginx_webserver -d -p 80:80 nginx

  1. docker run 会根据指定的镜像名到本地,到官方hub找镜像,然后解包镜像,创建container容器通过镜像,运行应用,将应用的输出返回给docker-client. docker client的输出是docker-daemon返回的
  2. --name 是指定容器的名称
  3. -d 已守护进程方式运行
  4. -p 80:80 指定容器服务的端口,映射宿主机的端口。这种对应image配置了需要网络端口,这里指定端口号而已。如果应用需要而不指定会怎样?
  5. 还有一些如:-e 给容器指定环境变量;--device添加一个设备给容器;

第三步:单纯下载镜像,pull

上面的docker run,如果本地没有镜像,那么会从docker hub上取,然后创建容器通过镜像。
其实很多时候我们可以先下载镜像到本地,后面再执行docker run.
这就是registry提供的上传下载功能,创建私有repo。

docker pull redis

第四步:设置国内docker-hub

由于有时候docker官方hub被墙,那么设置国内的镜像docker-hub是可以加快pull速度

  1. 找到/etc/docker/daemon.josn
  2. 在文件添加如下json数据:
{ "registry-mirrors": [ "https://registry.docker-cn.com" ] }
  1. 然后重启docker-daemon服务, 注意会已运行的容器会停掉:systemctl daemon-reload && systemctl restart docker

第五步:列出已有镜像和镜像物理目录在哪里

  1. 列出全部已有镜像: > docker images -a
  2. /var/lib/docker 是docker相关的物理目录

第六步:本地导入导出镜像及修改名字和tag

  1. 导出本地已有镜像:docker save image-id > a-file 或者参数指定文件 docker save image-id -o ‘filepath‘
  2. 导入镜像到本地: docker load < STDINPUT 或者 docker load -i ‘filepath‘
  3. 导入镜像会没有名字,可以通过docker tag image-id name:tag 来修改。修改存在的也可以。

    第七步: 导入导出容器的文件系统

  4. 导出: docker export container > tarfile 或者docker export container -o ‘filepath‘
  5. 导入:docker import ‘file‘ 会创建一个新的空文件系统的image然后导入file文件内容。详情google。这样可以将容器改变的做出新的镜像。

第八步: 宿主和容器互相复制数据

  1. docker cp container:src_path host_dest_path
  2. docker cp host_src_path container:src_path

第九步: 通过dockerfile定制我们自己的镜像

看篇文章《Dockerfile制作镜像》

原文地址:https://www.cnblogs.com/ZJiQi/p/11143425.html

时间: 2024-10-08 04:55:46

Docker 0x04: Docker 基本使用的相关文章

【Docker】Docker是什么?怎么安装?怎么用?

 从今天开始学习Docker,通过对网上资料的搜集与学习,记录一下. 是什么 ? Docker是一个基于LXC实现的类似于VMs的超轻量级虚拟机. 它与VMs的区别在于,VMs提供的是一个完整的操作系统虚拟环境,从硬件层次上,包含了大量类似硬件驱动.虚拟处理器.网络接口等等并不需要的信息,并且虚拟机也需要比较长时间的启动,同时也会消耗大量的内存.CPU 资源. 而Docker 扩展了 Linux 容器(Linux Containers),或着说 LXC,通过一个高层次的 API 为进程单独提供了

Docker EE/Docker CE简介与版本规划

近日,Docker发布了Docker 17.03.进入Docker 17时代后,Docker分成了两个版本:Docker EE和Docker CE,即:企业版(EE)和社区版(CE).那么这两个版本有什么区别呢?不仅如此,Docker进入17.03后,版本命名方式跟之前完全不同,以后Docker又会有怎样的版本迭代计划呢?本文将为您一一解答. 版本区别 Docker EE Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的.经过认证的容器

[docker] 管理docker容器中的数据

之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两种管理Docker中数据的主要方法. 数据卷 数据卷容器 数据卷 一个数据卷就是经过特殊设计的,在一个或多个容器中通过UFS文件系统提供的一些特性 实现数据持久化或共享. 数据卷可以在容器之间共享和重复利用 可以对数据卷里的内容直接进行修改 对镜像的更新不会改变数据卷的内容 卷会一直持续到没有容器使

(转) Docker EE/Docker CE简介与版本规划

随着Docker的不断流行与发展,docker公司(或称为组织)也开启了商业化之路,Docker 从 17.03版本之后分为 CE(Community Edition) 和 EE(Enterprise Edition).我们来看看他们之前的区别于联系. 原文链接:http://itmuch.com/docker/docker-1/ 版本区别 Docker EE Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的.经过认证的容器和插件. D

【Linux】【Services】【Docker】Docker File

Docker Images: docker commit Dockerfile:文本文件,镜像文件构建脚本: Dockerfile:由一系列用于根据基础镜像构建新的镜像文件的专用指令序列组成: 指令:选定基础镜像.安装必要的程序.复制配置文件和数据文件.自动运行的服务以及要暴露的端口等: 命令:docker build: 语法:指令行.注释行和空白行: 指令行:由指令及指令参数构成: 指令:其字符不区分大小写:约定俗成,要使用全大写字符: 注释行:#开头的行,必须单独位于一行当中: 空白行:会被

docker in docker

docker run --rm可以从一个镜像启动容器,并在容器执行完成后自动删除,这在计算任务中非常有用. 例如,我们通过以下步骤完成计算任务容器的启动: 1 将输入数据通过卷挂载方式连接到计算任务容器: 2 容器启动,执行命令启动工具: 3 工具加载数据进行计算,并将结果写入到数据卷: 4 计算完成,容器销毁. 当我们的任务都是基于容器环境时,启动上述步骤的docker命令是在容器内部执行的,我们可以通过挂在宿主机的docker命令来实现该操作: 1 挂在docker命令工具: {caltoo

理解Docker :Docker 网络

本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 1. Docker 网络概况 用一张图来说明 Docker 网络的基本概况: 2. 四种单节点网络模式 2.1 bridge 模式 Docker 容器默认使用 bridge 模式的网络.其特点

[转帖]Docker里运行Docker docker in docker(dind)

Docker里运行Docker docker in docker(dind) http://www.wantchalk.com/c/devops/docker/2017/05/24/docker-in-docer.html mark一下 学习原作者的内容. Posted on 2017-05-24 目的 制作一个可以build docker镜像的docker镜像,jenkins CI服务节点,部署到阿里云的容器服务集群里. 阿里云官方有完整的镜像,master和slave的都有,时间稍微久远了一

Docker inside Docker 基于 Alpine Linux

Study From https://hub.docker.com/_/docker/ 感慨一句 这些人真牛B .. 简单测试 拉取镜像 docker pull docker:dind 运行镜像 docker run -it --privileged --name dind -d docker:dind 查看镜像 [[email protected] ~]# docker exec -it some-docker sh / # docker version Client: Version: 18