安装 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. Docker中Nginx服务器相关配置

    工作中经常需要在服务器上来做一下实验,亲自动手看看效果是否与理论描述的相同.用docker可以很方便的配置所需要的环境,以下内容记录了如何用docker配置一个nginx服务器 下载nginx 从默认 ...

  2. c++-面向对象类的示例-求周长面积,判断体积相等-文件操作和一般操作

    面向对象编程示例:求周长和面积 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; //圆的周 ...

  3. Python活力练习Day2

    Day2:求1000以内的素数 #素数:除了1和它本身外,不能被其他自然数整除 #判断素数的方法:1).暴力法:从2到n-1每个数均整除进行判断   2).开根号法:从2到sqrt(n)均做整除判断( ...

  4. Repository封装方法

    1.创建依赖的实体类 /// <summary> /// 泛型实体基类 /// </summary> /// <typeparam name="TPrimary ...

  5. Xshell 连接 VirtualBox

    VirtualBox设置端口转发 Xshell 新建会话 连接成功

  6. Newifi D1或 D2在Openwrt中,启用硬件NAT,启用BBR

    Newifi D1或 D2在Openwrt中,启用硬件NAT,启用BBR 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-09-27. 启用 mt7621的硬件nat (Newifi ...

  7. 技术分享预告丨k3s在边缘计算中的应用实践

    技术分享是在[Rancher官方微信技术交流群]里以图文直播+QA实时互动的方式,邀请国内已落地经验的公司或团队负责人分享生产落地的最佳实践.记得添加微信小助手(微信号:rancher2)入群,实时参 ...

  8. Get提交数据过大,tomcat报错,信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level

    原因 get提交的数据过大,超过了默认值. 解决办法 get提交配置 设置tomcat的server.xml.找到我们启动的端口,一般是8080,增加maxHttpHeaderSize= " ...

  9. Koa 本地搭建 HTTPS 环境

    openssl 首先本地需要安装 openssl,用于生成自签名证书. $ brew install openssl 检查安装: $ openssl version LibreSSL 2.6.5 生成 ...

  10. .NET面试题解析(9)-SQL语言基础及数据库基本原理

    见面试题 1. 索引的作用?她的优点缺点是什么? 2. 介绍存储过程基本概念和 她的优缺点? 3. 使用索引有哪些需要注意的地方? 4. 索引碎片是如何产生的?有什么危害?又该如何处理? 5. 锁的目 ...