Docker初探

4 篇文章 0 订阅
1 篇文章 0 订阅

前言

  我的程序在本地运行没问题啊!我觉得程序员应该都说过这句话,自己电脑上的环境与别的电脑不一样,导致程序运行不了;如果每次装系统都需要去配环境而浪费自己的时间等问题,如果你有这些的困扰,那么来和我一起学习Docker吧!

了解Docker

Docker思想

  • 集装箱
  • 标准化(运输方式、存储方式、API接口)

Docker解决了什么问题

  1. 解决了系统运行环境不一致所带来的问题
  2. 应用之间不会互相影响内存
  3. 让快速扩展,弹性伸缩变得十分简单

走近Docker

Docker核心技术

docker搬运工
三个名词,镜像(集装箱)、仓库(超级码头)、容器(运行程序的地方),使用Docker运行一个程序的过程:去仓库把镜像拉到本地,再用一条命令运行起来变成容器
核心概念:
- Build:构建的意思,即构建镜像
- Ship:运输的意思,即运输镜像,从仓库或我们的主机进行运输
- Run:运行起来的镜像即容器

Docker镜像

构建镜像的目的?为了在其他机器上,或者其它环境上运行我的应用程序。
即image,镜像就是一系列文件,它可以是应用程序的文件,也可以是应用环境的文件,采用的是linux的联合文件系统
镜像的存储格式

Docker容器

容器是什么?容器的本质就是一个进程便于理解,可以想象为一个虚拟机,但又区别与虚拟机。区别:他的文件系统是分层的,而且最下边的n层都是只读的,只有最上面一层是可读可写的(在系统运行时写入日志,写入文件,修改系统配置文件等)。如果我们的应用要对镜像的一个文件进行写入操作怎么办?这时它会在镜像这一层找到那个要修改的文件,拷贝到最上面那层,再进行修改,修改后,应用运行时会从最上面的一层进行查找,如果没有,再接着往下面一层寻找。

结论:由于镜像这一层文件是只读的,不能修改,镜像上面那层(即容器)是可写的,因此同一个镜像可以生成不同的容器独立运行,互不干扰。

Docker仓库

构建仓库的目的?为了把我的镜像传输到其它的机器上(先把自己的镜像上传到Docker仓库,再在另一台机器上把镜像拷下来)

  • docker官方仓库地址:hub.docker.com
  • 163仓库地址:c.163.com

Docker安装

Widows

Win10(安装如下)
Win10之外

下载后直接进行安装,安装后生成四个文件,点击Docker Quickstart Terminal进行运行

第一次运行过程会比较慢,因为会从github上下载一个boot2docker.iso文件,可以先下载下来,放入c盘C:\Users\Administrator.docker\machine\cache目录下,在进行运行.
安装成功

Linux

Redhat&CentOs参考教程
系统要求:64-bit OS and 内核version 3.10
Ubuntu
系统要求:64-bit OS and 内核version 3.10
Ubuntu安装命令如下:

//查看系统内核是否符合要求
$ uname -r
$ su
# apt-get update  保证系统是最新版本
//使用系统自带的docker安装包进行安装,可能不是最新版本
# apt-get install -y docker.io
//使用最新的docker安装包进行安装
# curl -s https://get.docker.com | sh
//启动docker服务
# service docker start
//检查
# docker version

Docker使用

一些常用命令:

  1. 创建docker镜像docker pull[OPTIONS] NAME[:TAG]

    • NAME 是拉取镜像的名称,必须写
    • TAG 是拉取镜像的版本,可选择,不写默认最新版本
    • OPTION 是拉取的参数,一般用不到
  2. 查看本机有哪些镜像docker images[[OPTIONS] ][REPOSITORY[:TAG]]

    • REPOSITORY查看指定的镜像,用的比较少
  3. docker run[OPTIONS]IMAGE[:TAG][COMMAND][ARG]

  4. docker –help

使用示例

//查看本机镜像列表
docker images
//拉取镜像,不填写地址默认在hub.docker.com上找
docker pull hello-world
//运行,从镜像创建容器
docker run hello-world


如图:当执行docker pull hello-world 时,docker客户端会向docker daemon 发送一个docker pull命令,告诉docker daemon 要拉取一个hello-world镜像,docker daemon 会先在本地检查是否有此镜像,如果没有再从目标服务器拉取到本地;当执行docker run 时,过程一样,先向docker daemon 发送命令,docker daemon 检查本地是否存在,如果不存在,再从远程docker仓库拉取回本地,在运行这个镜像变成一个容器

Docker进阶

运行Nginx

//进入docker仓库网站查询nginx镜像,复制pull地址
docker pull ....
//查看目前正在运行的容器
docker ps
//后台运行
docker -d  ...
//进入容器内部-i保证输入有效-t分配一个伪终端进行输入命令
docker exec -it 容器id(不用写全) bash
//已经进入容器内部,相当于一台linux,
//查询nginx在什么位置
which nginx
//查询当前服务的进程
ps -ef
//退出容器
exit

Docker网络

网络类型

  • Bridge
  • Host
  • None

端口映射

可以将主机上的端口映射到容器中的端口,当访问主机上的端口的时候就相当于访问docker容器中的端口

//停止容器运行
docker stop 容器名称id
//查看运行帮助,找端口映射参数
docker run --help
//运行并映射指定端口
docker run -d -p 8080(主机端口):80(容器端口) 镜像名字id
//-P 开放所有端口映射到一个随机端口中
//查看进程
docker ps

制作自己的镜像

//书写Dockerfile
//先从仓库中下载要继承的基础镜像文件
//创建文件
vim Dockerfile
//继承一个基础镜像
from hub.c.163.com/library/tomcat
//镜像作者的信息
MAINTAINER zhaoshuaifei sfdotz@gmail.com
//把web应用放入
COPY 本地war包 tomcat路径的webapp下

//点代表Dockerfile文件在当前目录下
docker build -t (镜像名字) .
//重启服务器
docker restart 镜像名称

结束

看完本文你对docker只是有了初步的认识和使用,能够满足自己日常使用,docker还有更加深入的知识,如果你感兴趣,可以去官网进行研究。

本文参考慕课网视频

结语

世界在变化,技术在革新,如果你不想被淘汰,那么怎能停止学习的步伐?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值