Docker学习记录

首先Docker火了好一阵了,最近闲来无事就学习了下,算是了解的大致流程和基本操作,特此记录。

Docker的核心组件有以下:

  • Docker客户端和服务器(也称为Docker引擎)
  • Docker镜像
  • Registry
  • Docker容器

Docker客户端和服务器

Docker是C/S架构,Docker客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程(也称为Docker引擎)完成工作并返回结果。

Docker镜像

容器需要基于Docker镜像来生成,镜像相当于容器的“源代码”。我的理解就像是集装箱里拉的货物(只不过在这里是各种软件罢了)

Registry

Registry用来存储用户构建的镜像,分为公共的和私有的,公共的仓库叫Docker Hub(集中型仓库,跟github网站模式类似,可以获取别人分享的);另一种就是架设自己私有的Registry(自己注册一个官方账号,然后上传到自己的账号空间)。

容器

Docker容器是盛放软件和服务的,就是基于镜像生成的容器,相当于一个执行环境可以执行一系列操作,强调一下它跟系统不一样,它不具备内核,所以我的理解就是一个容器就是提供了一些“服务”。


安装(Ubuntu环境16:04,这个版本系统层面就满足了安装Docker的不少前提条件)

1. 添加Docker的ATP仓库

sudo sh -c “echo deb https://apt.dockerproject.org/repo ubuntu-xenial main > /etc/apt/sources.list.d/docker.list”

2. 检查curl是否安装

sudo lsb_release –codename | cut -f2
结果应输出系统版本名称(eg: xenial)

如果需要安装curl则执行:
sudo apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 –recv-keys 58118E89F3A91289C070ADBF76221572C52609D

3. 更新APT源

sudo apt-get update

4. 安装Docker

sudo apt-get install docker-engine

4. 安装Docker

sudo apt-get install docker-engine

5. 最后确认是否成功

sudo docker info
输出应为:
Containers: 0
Images: 0

6. 如果启用了UFW(防火墙),则还需要配置转发策略

把原始:
DEFAULT_FORWARD_POLICY=”DROP”
改为:
DEFAULT_FORWARD_POLICY=”ACCEPT”


Docker的基本操作

1. Docker容器

sudo docker run -i -t ubuntu /bin/bash

这条命令就会运行一个基于ubuntu镜像的容器(-i标志容器中STDIN为开启的,-t则是告诉Docker要为创建的容器分配一个伪tty终端),创建的时候如果本机仓库有ubuntu镜像它就会用本机的,否则就回去Dockerhub去下载,后面/bin/bash 就是在容器中执行的命令(这里是启动一个Bash Shell)

这条命令执行之后就会默认进入容器中此时可通过输入exit退出并终止容器。退出后想重启关闭的容器通过下面的命令
sudo docker start [容器ID / 容器名字]
如果想附着到正在运行的容器则执行:
sudo docker attach [容器ID / 容器名字]

除了-i,-t之外,还可以有一系列的参数声明,比如-d就是将容器放在后端运行, –name 就可以对容器命名,还有-c和–restart等等一系列的操作可以声明。

Docker exec 命令可以在容器内部运行一些命令进程。

Docker stop则是停止容器的。

Docker rm [容器ID / 容器名字] 删除容器。

2. Docker镜像

镜像在容器中以层的形式而存在,通常下一级是上一级的父级或者必备基石

docker images 列出当前主机中包含的镜像

docker pull [镜像名称:镜像版本号] 从Dockerhub拉取镜像。

docker search [镜像名称:镜像版本号] 在Dockerhub中查找对应镜像。

3. 构建自己的镜像

构建自己的镜像,有俩种方式,docker commit 和 Dockerfile书写。
最后也是可以把自己的镜像发布到Dockerhub上的。

第一种docker commit: 创建好容器然后在容器里面安装对应的软件和你想做的操作,然后通过docker commit命令提交。

第二种(也是官方推荐的):把你一系列的操作和安装命令写道Dockerfile里面,然后通过docker build命令去构建一个新的镜像。 (提示:docker命令也支持git,所以将dockerfile放到github上,直接可以通过github上的dockerfile直接生成了)。

Dockerfile也可以配置缓存,没怎么了解就不说了

Docker实践环节

网上看到的一个不错的实践例子,Dockerfile搭建MEAN完整架构应用

当谈到Docker学习笔记时,我可以为你提供一些基本的指导和主题,以帮助你开始学习Docker。以下是一些可能涵盖的主题: 1. Docker简介:了解Docker的基本概念、优势以及它如何与虚拟化技术不同。 2. Docker安装:学习如何在不同的操作系统上安装Docker,并熟悉Docker引擎的组成部分。 3. Docker镜像:了解Docker镜像的概念,以及如何通过构建、拉取和推送镜像来管理和共享容器环境。 4. Docker容器:学习如何创建、启动、停止和删除容器,并了解容器和主机之间的交互方式。 5. Docker网络:探索Docker网络模式,包括桥接网络、主机网络和覆盖网络,并理解容器之间以及容器与主机之间的通信方式。 6. Docker存储:了解Docker存储技术,包括数据卷和绑定挂载,并学习如何在容器中持久化数据。 7. Docker Compose:介绍Docker Compose工具,它可以用于定义和运行多个容器的应用程序。 8. Docker Swarm:探索Docker Swarm,它是Docker官方的容器编排和集群管理工具,于在多个主机上部署和管理容器应用。 9. Docker和持续集成/持续部署(CI/CD):了解如何将Docker与CI/CD工具(如Jenkins、GitLab CI等)集成,以简化应用程序的构建和部署过程。 这只是一些可能的主题,你可以根据自己的需求和兴趣来选择学习内容。希望这些指导可以帮助你开始学习Docker!如果你有任何特定的问题,我很乐意回答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值