前言

为什么要使用 Docker?

  • Docker 容器的启动在秒级
  • Docker 对系统资源利用率高,一台主机上可以同时运行数千个 Docker 容器。
  • Docker 基本不消耗系统资源,使得运行在 Docker 里面的应用的性能很高。

相比于传统的虚拟化技术,Docker 有哪些优势?

  • 更快速的支付和部署:开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。
  • 更高效的虚拟化:Docker 容器的运行不需要额外的 Hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效。
  • 更轻松的迁移和扩展:Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。
  • 更简单的管理:使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

接下来,我们开始 Docker 的学习之旅。

1. Docker 安装

由于 APT 官方库里的 Docker 版本可能比较旧,所以先卸载可能存在的旧版本:

sudo apt-get remove docker docker-engine docker-ce docker.io

更新 APT 包索引:

sudo apt-get update

安装以下包以使apt可以通过HTTPS使用存储库(repository)

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

添加 Docker 官方的 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

使用下面的命令来设置 stable 存储库:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

再更新一下 APT 包索引:

sudo apt-get update

安装最新版本的 Docker CE:

sudo apt-get install -y docker-ce

2. 验证 Docker 安装是否成功

查看 Docker 服务是否启动:

systemctl status docker
root@ubuntu:/home/hadoop/workspace/compose/composeapp# systemctl status docker
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-03 12:25:14 PDT; 2 days ago
Docs: https://docs.docker.com
Main PID: 1436 (dockerd)
Tasks: 27
CGroup: /system.slice/docker.service
├─ 1436 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
└─42652 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 2345 -container-ip 172.17.0.3 -container-port 12345

若未启动,则启动 Docker 服务:

systemctl start docker

运行经典的 Hello world:

docker run hello-world

 
在这里插入图片描述

3. 获取 Docker 镜像

镜像是一个模板,运行镜像便可得到 Docker 容器,可以从镜像服务器上获取做好的镜像, 使用 docker pull 命令来获取需要的镜像。Docker Hub 上已经有很多构建好的镜像,我们可以直接使用,在制作镜像之前,有必要搜索一下看是否已经有人共享了相关的镜像,减少制作成本。通过 docker search 实现搜索,docker pull 拉取镜像。

搜素镜像

搜索ubuntu镜像

docker search ubuntu

 
在这里插入图片描述

获取镜像

docker pull ubuntu

 
在这里插入图片描述

查看本地镜像

docker images

 
在这里插入图片描述

如果 Docker Hub 中没有自己中意的镜像,怎么办呢?当然就是自己制作镜像了,接下来介绍制作镜像的两种方式。

4. 创建自己的镜像

常见的创建镜像的方式有两种。

使用容器的快照制作镜像

小而精的 Docker 项目,为什么要使用 Docker? Docker 容器的更多相关文章

  1. docker开启2376端口CA认证及IDEA中一键部署docker项目

    嘿,大家好,今天更新的内容是docker开启2376端口CA认证及IDEA中一键部署docker项目... 先看效果 我们可以通过idea一键部署docker项目,还以通过idea的控制台实时查看容器 ...

  2. SpringBoot项目部署初体验【Docker】

    前言 一个微服务项目,小到几个模块,大到十几二十几个模块,每个模块都是单独的SpringBoot工程,这么多模块的部署,部署成本真的很高,而且每个服务的部署,都是手动部署,打成war或者jar ?,一 ...

  3. Docker 实战(3)- 搭建 Gitlab 容器并上传本地项目代码

    如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 搭建 Gitlab 容器 搜索 ...

  4. Docker项目demo

     Docker数据持久化 4.1 Volume (1)创建mysql数据库的container (2)查看volume (3)具体查看该volume docker volume inspect 485 ...

  5. windows环境30分钟从0开始快速搭建第一个docker项目(带数据库交互)

    前言 小白直接上手 docker  构建我们的第一个项目,简单粗暴,后续各种概念边写边了解,各种概念性的内容就不展开,没了解过的点击 Docker 教程 进行初步了解. Docker 是一个开源的应用 ...

  6. 如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目

    如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目 #1:前提准备 1.1 首先请确认你的电脑是windows10专业版或企业版,只有这 ...

  7. node项目自动化部署--基于Jenkins,Docker,Github(1)安装Jenkins

    前言 每次项目代码更新后都要重新部署,如果只有一台服务器还好. 但是如果是分布式系统,动不动就很多台服务器,所以代码的自动部署就显得十分重要了. 这里用几篇文章来记录一下如何使用Jenkins,Doc ...

  8. docker项目ssl 安全证书的种种

    一,证书挂着宿主的nginx上 这个很简单,只需要修改宿主nginx的配置文件即可 server { ssl default; server_name www.abc.com; #项目域名 ssl_c ...

  9. 使用nginx实现一个主机部署多域名指向不同docker项目

     1,安装 docker yum install docker 使用Docker 中国加速器 vim /etc/docker/daemon.json 添加下面代码 { "registry-m ...

随机推荐

  1. centos8平台使用pidstat监控cpu/内存/io

    一,安装pidstat: 1,安装 [root@localhost yum.repos.d]# yum install sysstat 2,查看版本: [root@localhost ~]# pids ...

  2. 第二十六章 ansible主要模块介绍

    一.Ansible模块回顾 1.command模块 [root@m01 ~]# ansible web01 -m command -a 'free -m' 2.shell模块 #支持管道符这种特殊符号 ...

  3. java应用启动报错Unable to access jarfile xxxxx.jar

    当使用命令:javar -jar xxxx.jar 启动应用时,报错Unable to access jarfile xxxxx.jar,这种主要是 jar 的名称或者路径有问题:

  4. MAP;MLE

    判别学习算法:直接对问题进行求解,比如二分类问题,都是在空间中寻找一条直线从而把类别的样例分开,对于新的样例只要判断在直线的那一侧就可. ==>这种直接求解的方法称为判别学习方法 生成学习算法: ...

  5. vue 路劲

    <style scoped src="../assets/css/f_information.css">@import url("../assets/css/ ...

  6. eclipse之SSH配置spring【二】

    第一篇中配置struts完成(http://www.cnblogs.com/dev2007/p/6475074.html),在此基础上,继续配置spring. web.xml中增加listener,依 ...

  7. Windows定时任务copy到nfs目录

    @echo off mount 192.168.5.10:/data/test x: xcopy /y "D:\backup\mysql\20200316_230000.sql.tar.gz ...

  8. CodeForces 1327F AND Segments

    题意 给三个整数 \(n,k,m\) 和 \(m\) 个限制 \((l_i,r_i,x_i)\),求有多少个长度为 \(n\) 的序列 \(a\) 满足: 对于 \(1\leq i\leq n\) 有 ...

  9. Linux__用户用户组和权限

    用户用户组和权限 useradd +用户名, 添加这个用户 userdel +用户名, 删除这个用户(有残留 ) userdel -r +用户名, 彻底删除这个用户 groupadd +组名 ,添加这 ...

  10. 一文搞懂后台高性能服务器设计的常见套路, BAT 高频面试系列

    微信搜索「编程指北」,关注这个写干货的程序员,回复「资源」,即可获取后台开发学习路线和书籍 先赞后看,养成习惯~ 前言 金九银十,又是一年校招季. 经历过,才深知不易.最近,和作为校招面试官的同事聊了 ...