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完整架构应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值