安装 Docker

  • Windows 10 专业版以上版本

Docker for Windows Installer

在安装前,需要确保目标机器已经开启了硬件虚拟化和 HyperV ;在安装的过程中建议不要进行其它操作,它需要自动重启。

  • Ubuntu

Docker for Ubuntu

  • MacOS

Docker for MacOS

镜像加速器:registry mirror https://registry.docker-cn.com

安装完成后可打开 bash 窗口检查安装是否正常。

# 查看当前安装版本
docker -v # 查看当前详细信息
docker -info # 登录 Docker
docker login

安装 Portainer

portainer: 可视化的管理界面,可选操作;(VSCode 里面的 Docker 插件也是可以进行相关操作)

docker volume create portainer_data

docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

执行成功后浏览 127.0.0.1:9000 即可。

架构图

三大关键点

image

Docker 镜像是一个只读的环境模板,里面只存放了我们需要运行程序的基础环境配置。

  • 常用命令
# 获取镜像
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] # 查看当前已经下载下来的所有镜像
docker images
docker image ls # 显示所有悬挂镜像(仓库名、标签均为 <none> 的镜像)
docker image ls -f dangling=true # 以特定格式显示
docker image ls -q
docker image ls --format "{{.ID}}: {{.Repository}}"
docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" # 查看镜像体积
docker system df # 删除指定镜像
docker image rm [选项] <镜像1> [<镜像2> ...]
docker rmi container_id

注:删除镜像前,请先删除对应的容器。

  • 使用 Dockerfile 进行自动构建

    • FROM:指定基础镜像
    • RUN:执行命令
    • build:docker build [选项] <上下文路径/URL/->
    • COPY:复制文件
    • ADD:更高级的复制文件
    • ENTERPOINT:入口点
    • ENV:设置环境变量
    • ARG:构建参数
    • VOLUME:定义匿名卷
    • EXPOSE:暴露端口
    • WORKDIR:指定工作目录
    • USER:指定当前用户
    • HEALTHCHECK:健康检查
    • ONBUILD:未他人做嫁衣裳

示例脚本如下所示:

docker build -t friendlyname .# 使用此目录的 Dockerfile 创建镜像
docker run -p 4000:80 friendlyname # 运行端口 4000 到 90 的“友好名称”映射
docker run -d -p 4000:80 friendlyname # 内容相同,但在分离模式下
docker ps # 查看所有正在运行的容器的列表
docker stop <hash> # 平稳地停止指定的容器
docker ps -a # 查看所有容器的列表,甚至包含未运行的容器
docker kill <hash> # 强制关闭指定的容器
docker rm <hash> # 从此机器中删除指定的容器
docker rm $(docker ps -a -q) # 从此机器中删除所有容器
docker images -a # 显示此机器上的所有镜像
docker rmi <imagename> # 从此机器中删除指定的镜像
docker rmi $(docker images -q) # 从此机器中删除所有镜像
docker login # 使用您的 Docker 凭证登录此 CLI 会话
docker tag <image> username/repository:tag # 标记 <image> 以上传到镜像库
docker push username/repository:tag # 将已标记的镜像上传到镜像库
docker run username/repository:tag # 运行镜像库中的镜像

container

容器是从镜像的创建的运行实例;简单的说,它是在镜像上面又创建了一层可读写层。容器之间相互隔离。

  • 常用命令
# 查看当前正在运行的容器
docker container ls
docker ps # 查看当前所有容器实例
docker container ls -a
docker ps -a # 新建(若不存在)并启动一个容器实例
docker run image # 新建(若不存在)并后台启动一个容器实例
docker run -d image # 新建(若不存在)并以交互模式启动一个容器实例
docker run -it image # 启动已终止的容器
docker start conatiner_id
docker container start conatiner_id #停止指定容器
docker stop conatiner_id
docker container stop conatiner_id # 停止所有容器(在 powershell 中操作)
docker stop $(docker ps -aq) # 删除指定容器
docker rm conatiner_id # 查看指定容器的运行日志
docker logs conatiner_id

repository

仓库是集中存放镜像的地方,仓库分为公开仓库和私有仓库两种,最大的公开仓库是Docker Hub,提供了数量庞大的镜像供用户下载,国内的公开仓库包括Docker Pool等,可以提供大陆用户更稳定、更快的访问。

  • 常用命令
# 查找镜像
docker search keywords # 拉取镜像
docker pull repo_name docker push username/repo_name

相关参考

Docker 系列之 基础入门的更多相关文章

  1. docker容器技术基础入门

    目录 docker容器技术基础入门 容器(Container) 传统虚拟化与容器的区别 Linux容器技术 Linux Namespaces CGroups LXC docker基本概念 docker ...

  2. 「译」JUnit 5 系列:基础入门

    原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, Feb, 2016 译文首发:Linesh 的博客:JUnit 5 系列: ...

  3. docker系列之基础命令-2

    一.查看本地镜像 docker images 二.需要基础的镜像两种方式 1.docker pull centos 可以直接拉起镜像 2.直接用xshell导入就行,docker load -i  加 ...

  4. docker系列之基础命令-1

    1.docker基础命令 docker images 显示镜像列表 docker ps 显示容器列表 docker run IMAGE_ID 指定镜像, 运行一个容器 docker start/sto ...

  5. Docker系列之基础实践篇(上)

    常用命令回顾 帮助命令 1.启动docker //启动 $ systemctl start docker 2.查看docker版本 $ docker version 3.查看安装的docker信息描述 ...

  6. 1、docker容器技术基础入门

    Docker和传统虚拟机的区别               参考文章: https://lwn.net/Articles/531114/    操作中的命名空间详解 https://blog.yadu ...

  7. 1.docker容器技术基础入门

    内容来自:https://www.cnblogs.com/marility/p/10215062.html https://blog.51cto.com/gouyc/2310785?source=dr ...

  8. Vue 系列之 基础入门

    背景叙述 渐进式 JavaScript 框架 易用:已经会了 HTML.CSS.JavaScript?即刻阅读指南开始构建应用! 灵活:不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩. 高 ...

  9. 快速入门系列--WebAPI--01基础

    ASP.NET MVC和WebAPI已经是.NET Web部分的主流,刚开始时两个公用同一个管道,之后为了更加的轻量化(WebAPI是对WCF Restful的轻量化),WebAPI使用了新的管道,因 ...

随机推荐

  1. 使用node+express+mongodb实现用户注册、登录和验证功能

    无论是手机端还是pc端,几乎都包含登录注册方面功能,今天就使用node+express+mongodb实现一套登录注册功能,这里需要自己去安装MongoDB环境,如果没有安装可以看这篇关于MongoD ...

  2. css实现图片动画效果

    需求 项目里有个消息中心,当有消息的时候,小铃铛图标可以晃两下,提示当前有信息. 实现过程 书写css 使用css的keyframe属性,配合animation. @keyframes ringing ...

  3. python实现智能语音天气预报

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 飞奔的帅帅 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  4. Linux(一)

    1.简单命令        1.1 ls指令         语法1:#ls  [路径]               表示列出指定路径下的文件夹和文件的名字,如果路径没有指定则列出当前路径下的(lis ...

  5. jqgrid addRowData报错

    今天再写项目的时候, 有一个手动添加行的功能,使用的是jqgrid的addRowData方法添加数据.但是在我们切换标签页的时候,再次添加行,调用这个方法的时候,报错了.错误信息如下 然后经过自己的反 ...

  6. ES6之Class类

    一.Class的基本语法 1.简介 基本上,ES6的class可以看作只是一个 语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让 对象原型 的写法更加清晰.更像面向对象编程的语法而 ...

  7. arcgis api 4.x for js 结合 Echarts4 实现统计图(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 4.x for js:esri 官网 api,里面详细的介绍 arcgis api 4.x 各个类 ...

  8. Android项目实战之高仿网易云音乐创建项目和配置

    这一节我们来讲解创建项目:说道大家可能就会说了,创建项目还有谁不会啊,还需要讲吗,别急听我慢慢到来,肯定有你不知道的. 使用项目Android Studio创建项目我们这里就不讲解了,主要是讲解如何配 ...

  9. 《精通Python爬虫框架Scrapy》学习资料

    <精通Python爬虫框架Scrapy>学习资料 百度网盘:https://pan.baidu.com/s/1ACOYulLLpp9J7Q7src2rVA

  10. uni-app ios 苹果真机运行

    首先我们准备苹果手机一台,数据线一根,然后连接到电脑. 1.电脑安装iTunes 软件,网址:http://soft.onlinedown.net/soft/279734.htm 安装完成之后打开iT ...