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 来修改。修改存在的也可以。

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

  1. 导出: docker export container > tarfile 或者docker export container -o 'filepath'

  2. 导入: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制作镜像》

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

  1. Docker 0x02: Docker生态

    目录 Docker生态 Docker官网 0x00 网址 Docker组件 0x01. docker-client 与 docker-daemon 0x02. docker镜像 0x03. docke ...

  2. [经验交流] docker in docker 的变通实现方法

    最近在做CI持续集成环境的容器化,其中一个工作是:在容器中构建容器镜像. 对于这个需求,网上有一些 Docker in Docker 的方法,具体需要修改宿主机的配置.这种方式在单机环境下.对安全要求 ...

  3. 【Docker】docker /var/lib/docker/aufs/mnt 目录满了,全是垃圾数据,咋搞?

    命令: #!/bin/bash # 推荐方式 docker volume ls -f dangling=true | awk '{ print $2 }' | xargs docker volume ...

  4. jenkins和docker 使用docker作为slave

    使用docker作为jenkins slave. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.com/ciandcd 参 ...

  5. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行

    本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...

  6. jenkins+docker 持续构建非docker in docker jenkins docker svn maven

    工欲善其事必先利其器,为了解脱程序员的,我们程序员本身发明了很多好用的工具,通过各种工具的组合来达到我们想要的结果 本文采用jenkins docker svn maven作为相关工具,项目sprin ...

  7. [Docker基础]Docker安装教程

    Install Docker Docker支持几乎所有的Linux发行版,也支持Mac和Windows. 各操作系统的安装方法可参考Docker官网. 安装环境 ubuntu 16.04 Docker ...

  8. 【Docker】Docker概述

    [Docker] Docker可以说是近几年非常热门的技术之一了.不管是别人敦促我还是从自己的想法来说,都觉得Docker这玩意儿肯定是要好好学习一下的,无奈没啥时间专门播出来给Docker,一直以来 ...

  9. ubuntu 18.04安装docker以及docker内配置neo4j

    如题 切换到root用户下 apt install docker.io 等啊等,很快,就好了.. 如图 即可使用 如果出现Cannot connect to the Docker daemon at ...

随机推荐

  1. Layui 必填验证

    lay-verify="required"

  2. 网络协议 13 - HTTPS 协议

    之前说了 HTTP 协议的各种问题,但是它还是陪伴着互联网.陪伴着我们走过了将近二十年的风风雨雨.现在有很多新的协议尝试去取代它,来解决性能.效率等问题,但它还还能靠着“多年的情分”活的滋润.然而,近 ...

  3. 两次bfs求树的直径的正确性

    结论:离树上任意点\(u\)最远的点一定是这颗树直径的一个端点. 证明: 若点\(u\)在树的直径上,设它与直径两个端点\(x,y\)的距离分别为\(S1\).\(S2\),若距离其最远的点\(v\) ...

  4. Codeforces Round 561(Div 2)题解

    这是一场失败的比赛. 前三题应该是随便搞的. D有点想法,一直死磕D,一直WA.(赛后发现少减了个1……) 看E那么多人过了,猜了个结论交了真过了. 感觉这次升的不光彩……还是等GR3掉了洗掉这次把, ...

  5. HTML基础知识---文本编辑练习

    飘柔兰花去油洗发水液露去屑止痒控油                                         阿道夫净屑舒爽清洁头皮去屑洗发水520ml                      ...

  6. js 判断字符串是否为空或是否全为空格

      判断字符串是否为空 if (str == "") { } 判断字符串是否为空且不能全为空格 if (str.match(/^[ ]*$/)) { } 第二种方式不仅可以校验空格 ...

  7. Mikrotik: Setup SSTP Server for Windows 10 Client

    原文: http://www.dr0u.com/mikrotik-setup-sstp-server-for-windows-10-client/ Basic how-to on SSTP for a ...

  8. 【操作系统之十二】分支预测、CPU亲和性(affinity)

    一.分支预测 当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生转跳,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕 ...

  9. 停止IIS服务

    1 第一步 停止 World Wide Web Publishing Service     这个是W3C服务 2 第二部 停止 IIS Admin Service  这个IIS元数据管理服务

  10. TopCoder入门

    TopCoder入门 http://acmicpc.info/archives/164?tdsourcetag=s_pctim_aiomsg 本文根据经典的TC教程完善和改编.TopCoder:htt ...