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. ABP .net framework版 的发布

    先正常的发布流程走 特别的如下图

  2. 网络协议 7 - UDP 协议

    网络协议五步登天路,我们一路迈过了物理层.链路层,今天终于到了传输层.从这一层开始,很多知识应该都是服务端开发必备的知识了,今天我们就一起来梳理下.     其实,讲到 UDP,就少不了 TCP.这俩 ...

  3. html规范思维导图(仅限于自己)

  4. Linux 内核启动信息的打印 --- dev_driver_string函数/dev_name函数

    内核启动时,常会打印出一些信息:开头是 "驱动模块的名字: + 具体的信息" 如:在运行的linux系统设备上,插入鼠标,就会打印出鼠标的相关信息; [ 402.134068] i ...

  5. Redis读写分离技术解析

    背景 云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量.这种架构读写请求都在master上完成, ...

  6. BuaaRedSun团队博客目录——北航社团项目

    目录 一.Scrum Meeting 1. Alpha 2. Beta 3. Gamma 二.测试报告 三.发布说明 四.技术博客 后端 前端 五.习得的软工原理/方法/技能? Alpha Beta ...

  7. 聊一聊 JS 输出为 [object object] 是怎么回事?

    聊一聊 JS 输出为 [object object] 是怎么回事? 今天在学习ES6中的 Symbol 数据类型时,在写demo时控制台输出为 Symbol[object object] ,当时有点疑 ...

  8. odoo @api.constrains _sql_constrains

    实现机制: @api.constrains('fields') 服务器启动时将模型中的所有约束方法注册到对象池中: 在create.write时会根据创建或修改的fields检查是否有对应的约束方法, ...

  9. Docker快速搭建Zookeeper和kafka集群

    使用Docker快速搭建Zookeeper和kafka集群 镜像选择 Zookeeper和Kafka集群分别运行在不同的容器中zookeeper官方镜像,版本3.4kafka采用wurstmeiste ...

  10. 查看电脑已保存的wifi及密码

    1. 查看以保存的wifi名称  打开cmd(win+r) #查看已保存WiFi名称 netsh wlan show profiles 2. 查看已保存的wifi的密码 netsh wlan show ...