1. docker是啥?

自行Google或百度去。。。

https://yeasy.gitbooks.io/docker_practice/introduction/what.html

重要概念:

  • 镜像 image :一个特殊的 root 文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
  • 容器 container:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库 repository:集中存储、分发镜像的服务(Docker Registry)中包含多个仓库,每个仓库可以包含多个标签(Tag),每个标签对应一个镜像。Docker 的官方仓库Docker Hub是最重要、最常用的 image 仓库。

docker VS 虚拟机

虚拟机(virtual machine)是带环境安装的一种解决方案。它可以在一种操作系统里面运行另一种操作系统,比如在 Windows 系统里面运行 Linux 系统。缺点:资源占用多,冗余步骤多,启动慢。

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。特点:启动快,资源占用少,体积小。

2. 下载安装

有各种版本,我安装windows版本:https://hub.docker.com/editions/community/docker-ce-desktop-windows/

和正常软件下载安装没啥区别,安装后注册账号,就试用了。

3. 简单试用

登录后,除了右下角白鲸图标显示Docker Desktop is running之外,没有任何反应。需要cmd工具来运行,可用系统自带的Cmd.exe或者下载安装PowerShell来运行,两个我都试了下,体验没啥区别,PowerShell更有unix/linux的感觉吧。

一些简单和常用的命令要记住,其他需要的时候知道去查:

docker version
docker info
docker ps #查看容器
docker ps -a #包括停止的容器
docker logs -f <容器名orID> #查看容器日志
docker rm <容器名orID> #删除
docker stop <容器名orID> #停止
docker start <容器名orID> #启动
docker kill <容器名orID> #杀死
docker images #查看所有镜像
docker pull <镜像名:tag> #拉取镜像
docker build -t <镜像名> <Dockerfile路径> #构建镜像

运行docker run hello-world来测试从Docker Hub拉一个图像并启动一个容器。

启动运行一个ubuntu容器



一个有模有样的ubuntu环境就出来了,自带了perl/awk等工具。



输入exit以停止容器并关闭powerhell。

Ref:[Docker for Windows 使用入门

](https://www.cnblogs.com/stulzq/p/7743865.html)Docker 入门教程

[ docker 命令

](https://www.cnblogs.com/kingleft/p/6029268.html)https://yeasy.gitbooks.io/docker_practice/basic_concept/repository.html

Docker初试的更多相关文章

  1. 【docker】docker初试与填坑

    docker是最近很流行的部署方式,最近尝试之前的项目都转移到docker上运行,下面是碰到的一些坑和解决方案. 网络问题 因为国内的原因,docker pull 镜像的时候经常碰到连不上或者速度极慢 ...

  2. docker 初试---常用命令

    http://blog.csdn.net/wsscy2004/article/details/25878363 常用命令 查看容器的root用户密码 docker logs <容器名orID&g ...

  3. podman初试-和docker对比

    podman初试-和docker对比 1,什么是docker? Docker 是一个开源的应用容器引擎,属于 Linux 容器的一种封装,Docker 提供简单易用的容器使用接口,让开发者可以打包他们 ...

  4. Docker dockerfile创建Eclipse镜像初试

    抽空初步阅读了Docker技术入门与实战 [Kindle电子书] http://www.cnblogs.com/2018/p/4600116.html 现在想首先在开发环境下引入统一的环境,由于开发中 ...

  5. 初试docker以及搭建mysql on docker

    前一阵阅读了google的borg论文,在最后的related works和总结中发现了kubernetes.从论文中了解的kubernetes这个东西很有意思,按照论文所说,它的实现有希望解决an ...

  6. 初试Docker on Debian on VirtualBox

    一直以来都对Docker如雷贯耳,很想尝试一下但都被各种忙给耽误了,最近由于项目调试,需要安装 Oracle 和 SQL Server 数据库,但又不想安装到本机系统里,于是下决心啃一下docker这 ...

  7. Docker 搭建 etcd 集群

    阅读目录: 主机安装 集群搭建 API 操作 API 说明和 etcdctl 命令说明 etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很 ...

  8. 初试 Kubernetes 集群中使用 Traefik 反向代理

    初试 Kubernetes 集群中使用 Traefik 反向代理 2017年11月17日 09:47:20 哎_小羊_168 阅读数:12308    版权声明:本文为博主原创文章,未经博主允许不得转 ...

  9. Docker入门-笔记-1

    Docker入门 Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注.如果你关注最新的技术发展,那么你一定听说过 Docker.不管是云服务还是微服务(Mi ...

随机推荐

  1. Noip模拟10 2021.6.27

    T1 入阵曲 好了,又一个考试败笔题. 也就是在那个时候,小 F 学会了矩阵乘法.让两个矩阵乘几次就能算出斐波那契数, 真是奇妙无比呢. 不过, 小 F 现在可不想手算矩阵乘法--他觉得好麻烦.取而代 ...

  2. Python课程笔记(四)

    1.模块的导入 相当于Java的包或C语言的头文件 (1) import math s = math.sqrt(25) print(s) (2) from math import sqrt s=mat ...

  3. A*,IDA*—高档次的暴搜

    A*通过评价函数来判断当前状态是否可以到达最终状态(即可行性剪枝),来减少不必要的搜索. 例题--P2324 [SCOI2005]骑士精神 我们通过当前不在指定位置上的棋子个数为评价函数,\(used ...

  4. Java并发:重入锁 ReentrantLock(一)

    ReentrantLock 是一种可重入的互斥锁,它不像 synchronized关键字一样支持隐式的重进入,但能够使一个线程(不同的方法)重复对资源的重复加锁而不受阻塞. ReentrantLock ...

  5. c++ get keyboard event

    #include <string> #include <iostream> #include "windows.h" #include <conio. ...

  6. 攻防世界 Misc 新手练习区 坚持60s Writeup

    攻防世界 Misc 新手练习区 坚持60s Writeup 题目介绍 题目考点 java反编译 jd-gui 的使用 Writeup 下载附件并打开 kali执行命令 java -jar 9dc125 ...

  7. Fiddler抓包工具学习及使用

    一.Fiddler工作原理 Fiddler是位于客户端和服务器端之间的代理,客户端发送请求,fiddler会拦截该请求,再转发到服务器端,服务器端处理请求做出的响应,也要被fiddler拦截,fidd ...

  8. vue+elementUI中单选框el-radio设置默认值和唯一标识某个单选框

    vue+elementUI中单选框el-radio设置默认值 如果后台返回的单选框的值是number:单选框的lable需要设置成 :lable='0';如下: <el-form-item la ...

  9. js-sequence-diagrams > 时序图

    ... <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...

  10. 微信小程序(三)开发框架

    基本构成: 数据绑定: 例: <!--index.hxml--> <view> <text data-name="{{theName}}">&l ...