【技术笔记】Docker镜像容器简述以及Docker compose安装实例

前一篇文章已经介绍过Docker的概要和安装步骤,今天继续延续Docker的相关内容,简述镜像和容器,还有Docker Compose的主要应用。


关于镜像

Docker 运行容器前需要本地存在对应的镜像,如果镜像不存在本地, Docker 会从镜像仓库下载(默认是Docker Hub公共注册服务器中的仓库,这里附上地址:Docker Hub)。

列出本地镜像:

$ sudo docker images

获取镜像,使用docker pull 命令来从仓库获取所需要的镜像,例如搜索 “ubuntu” 镜像:

$ sudo docker pull ubuntu


关于容器

容器是独立运行的一个或一组应用,以及它们的运行态环境。 如果把镜像看成面向对象中的类的话,那么容器就是类的实例化对象。

启动容器,通过docker run命令来启动容器。

查看运行帮助:

$ sudo docker run --help

接下来尝试输出一个 “Hello World”(仪式感),之后终止容器:

$ sudo docker run ubuntu /bin/echo "hello world"

进入到ubuntu容器中:

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

退出容器,可以使用exit命令:

$ exit

其中:

-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上。

-i 则让容器的标准输入保持打开。


守护状态运行

$ sudo docker run -d ubuntu /bin/echo "hello docker"

其中:-d 表示容器以守护态(Daemonized)形式运行。


查看当前运行的所有容器,通过 docker ps 命令:

$ sudo docker ps -a

获取容器的输出信息,通过docker logs命令(把容器的 NAMES , 容器的ID用上):

停止容器,可以使用docker stop来终止一个运行中的容器:

重动容器,可以使用docker start 重动容器:

删除容器,通过 docker rm 删除指定的容器:


Docker Compose安装

Docker Compose 是 Docker 官方编排(Orchestration)项目之一, 负责快速在集群中部署分布式应用。

Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个Web服务容器再加上后端的数据库服务容器等。

安装Docker Compose:

$ sudo apt install docker-compose

安装完成可以通过查找版本来验证是否安装成功:

$ docker-compose version

安装成功后,可以查看docker-compose命令的用法:

$ docker-compose

利用Docker Compose创建Wordpress应用

Wordpress是最常见的博客系统,一般部署需要LAMP/WAMP环境,这介绍通过Docker compose对它进行编排和部署。(Docker Hub地址

建立一个应用的目录:

$ mkdir wordpress

$ cd wordpress

创建 docker-compose.yml文件(用来启动的脚本配置文件):

写入文件:

编写yml脚本:

这里有点波折,本来我也是和官方一样用3.X以上的版本,但是我的Ubuntu系统提示我要用2.X版本,然后才能成功安装,大家可以根据实际情况来调整这个版本。

这里贴一个英文官方的脚本文档参考:


其中:

images 镜像名

restart 指定版本

ports 80为镜像端口, 映射的8081为主机端口

environment 环境配置,例,WORDPRESS_DB_PASSWORD 为wordpress数据库密码


启动应用,docker-compose执行编排脚本,分别制作和抓取web,redis镜像,启动容器:

$ sudo docker-compose up

这里也可以采用-d守护态形式,在后台运行安装:

上面这个图可以看到,已经是up-to-date最新版了,所以就是表示安装完成啦!

最后一步,只需要在浏览器输入你的外网地址加映射的端口号,即可访问WordPress应用:



读更多的好书,拍更美的照片,写更酷的代码,遇见更有趣的人,愿望是实现从IT菜鸟到全栈工程师的蜕变。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容