Docker初探

本文记录了Docker的学习过程,介绍了Docker的概念、应用场景和优点,对比了与虚拟机的差异。详细说明了Mac系统下的安装方法、镜像加速操作,以及镜像和容器的使用。最后演示了使用Docker安装Nginx的步骤,包括查找镜像、拉取、运行和部署等。

记录一下自己的学习过程,避免以后学起来一脸茫然

Docker 官网:www.docker.com

Docker是什么?

(Docker)容器是一个标准的软件单元,它将代码及其所有依赖关系打包,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境。Docker容器映像是一个轻量级,独立的可执行软件包,包含运行应用程序所需的一切:代码,运行时,系统工具,系统库和设置。

Docker的应用场景

  • Web 应用的自动化打包和发布。

  • 自动化测试和持续集成、发布。

  • 在服务型环境中部署和调整数据库或其他的后台应用。

Docker的优点

  • 1、简化程序:

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何平台上,实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。

  • 2、让你不再无法选择:

Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

  • 3、节省开支:

一方面,云计算时代到来,Docker使开发者不必为了追求效果而配置高额的硬件。Docker 与云的结合,不仅解决了硬件管理的问题,也改变了虚拟化的方式。

对比虚拟机

  • 更小的体积
  • 更快的启动速度
  • 更方便的操作
  • 更便捷的移植

如何安装

(以下仅为Mac安装等一系列操作)

Docker 官网:www.docker.com 直接下载

docker --version
复制代码

通过以上命令行进行校验是否已安装

镜像加速(必备操作)

由于国内网络问题,拉取镜像速度之慢无法忍受,需要配置加速器来解决,我使用的是网易的镜像http://hub-mirror.c.163.com(具体步骤如下)

可以通过以下命令进行验证加速器是否成功

docker info 
复制代码

镜像的使用

Docker 允许在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。 比如:docker run ubuntu:16.04 /bin/echo 'hello my docker'

先解释下参数

  • docker: Docker的可执行命令。

  • run:配合 docker 运行一个容器。

  • ubuntu:16.04指定要运行的镜像

  • /bin/echo "Hello my docker": 在启动的容器里执行的命令

看上面的图中,可以发现 第二行

因为本地并不存在ubuntu16.04这个镜像

原因

Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。)

我们可以通过docker images 查看本地是否有镜像

最后下载完成后再次执行命令就可以看到有ubuntu16.04的镜像了

最后使用docker run ubuntu:16.04 /bin/echo 'hello my docker'就可以成功输出我们想要的内容了

到此为止,是不是很简单,但是这些都没有什么大的作用。。。。接下来我们来做点有意义的事情(划重点,要考~~)

容器可以做什么

既然是容器,总要做点容器该做的事,比如跑一个程序

docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello  my docker; sleep 1; done"
复制代码

这里多了一个参数-d

  • -d :让容器在后台运行
    下面返回了一串炒鸡长的字符串,那就是容器的ID(用处挺多的,许多操作都靠它)

比较常用的命令行(详细的命令直接输入docker)

docker pull 镜像名  // 拉取镜像
docker run          // 启动容器
docker ps           // 查看应用容器
docker port         // 查看应用容器的端口
docker top          // 查看容器的进程
docker logs 容器ID  // 查看容器的日志
docker stop 容器ID  // 停止容器
docker start 容器ID // 重启容器
docker rm 容器ID    //移除应用容器!!!(移除前必须先停止,否则会直接报错)
docker rmi 镜像ID   //删除镜像
docker inspect 容器ID // 查看容器的底层信息
复制代码

Docker安装Nginx

1.查找 Docker Hub 上的 nginx 镜像

docker search nginx

2.拉取镜像

docker pull nginx

3.拉取完成后让我们运行一下

docker run --name nginx-test -p 8081:80 -d nginx

参数介绍:

  • --name: 表示容器的名称
  • -p: 表示将本地的8081端口映射到容器内部的80端口上(nginx默认80)
  • -d:前面说过了,后台运行

运行结果如下:(返回一个容器ID)

在浏览器中输入 127.0.0.1:8081

是不是感觉很神奇?让我们再来做点操作

nginx 部署
  • 首先,创建目录 nginx, 用于存放后面的相关东西。

    mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

    www: 目录将映射为 nginx 容器配置的虚拟目录。

    logs: 目录将映射为 nginx 容器的日志目录。

    conf: 目录里的配置文件将映射为 nginx 容器的配置文件。

  • 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录

    docker cp xxxxxxxxxxx:/etc/nginx/nginx.conf ~/nginx/conf

    xxxxxx为容器ID

命令部署

docker run -d -p 8081:80 --name nginx-test-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

命令说明: -v : 挂载到宿主目录上

例如:-v ~/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

启动命令完成后,进入~/nginx/www 目录:

cd ~/nginx/www

创建一个index.html的文件

vim index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>docker初探</title>
</head>
<body>
    <h1>Docker初探</h1>
    <p>成功了!!!</p>
</body>
</html>
复制代码

保存刷新一下页面

非常简单对不对~~下次再安装点数据库,就可以直接跑测试了,哈哈哈哈哈~~~(手动狗头)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值