docker容器别人访问很卡_一篇文章带你走进Docker的世界

Docker有啥用

Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以用与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

Docker两个基础概念

镜像(Images)

Docker镜像是一个只读的模板。包含了容器运行时所需要的文件系统和一些参数。镜像是无状态的,也不会改变。镜像是用来创建容器的。你可以使用docker pull命令获取一个别人已创建好的镜像,或者使用dockerbuild来构建一个自己的镜像,如果觉得上面说的不清楚,那你也可以把镜像理解为我们Windows的系统镜像,也就是说一个镜像拥有固定的初始环境,而这个环境可以在任何一个兼容的机器去安装运行。

容器(Containers)

Docker容器就像是一个文件夹,容器中包含了应用运行所需的一切。每个容器都是一个隔离的和安全的应用平台。容器是镜像的一个实例,它是有状态的,而且随时会改变,容器一般是短暂的,其实它跟我们传统意义上的虚拟机的基本概念是一样的,但是有又一些特点与优势,它类似于一个“微系统”,小巧而灵活。

举个例子:

在传统的方式中,我们在Linux系统部署一个Wordpress网站,需要做的步骤是:安装lamp/lnmp环境->配置数据库->下载源码->修改源码配置->完成。

而切换到Docker下是这样的:部署Docker->拉取镜像->创建容器->完成。

从主要步骤来看好像也没有减少多少步骤,但是在实际部署过程中,采用传统方式的话需要做的工作是非常多的,而通过Docker的方式进行启动则变得非常容易,下面演示一下:

使用Docker部署一个wordpress网站

在开始之前我们还需要了解下面几个命令:

  • pull #拉取镜像
  • run #创建容器

下面进行简单的演示,暂不对相关命令进行详细的讲解,对于Dockcer部署的话下期讲解。

首先查看Docker是否正常运行:

systemctl status docker

df01eb987c2a1dc32204f5ef8e32b559.png

然后修改镜像加速地址:

echo -e "{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}" > /etc/docker/daemon.json

systemctl daemon-reload

systemctl restart docker

8c7cb3cb1f44c273e5cf004bc5521c21.png

然后通过docker info命令查看镜像加速地址是否成功修改:

c4afac76441c9d6903dc5970b1e50edb.png

到这里Docker的验证就完成了,然后开始拉取镜像。

pull拉取镜像

docker的pull指令其实跟我们的yum install大致的意思是一样的,你也可以把它理解为是在安装一个wordpress应用

docker pull wordpress

5732ded3ac6ce7d80cc1d2e240d78d6b.png

拉取wordpress镜像完成

然后继续拉取一个MariaDB镜像:

7fe3db0a0b5bfd003867e16374622c62.png

拉取mariadb镜像

run创建容器

创建一个容器需要用run指令,基本格式如下:

docker run -d ${镜像}

-d :后台运行容器

创建mariadb容器

拉取完成之后自然是创建一个容器(应用)了,按照先后顺序,我们先创建一个数据库容器,命令如下:

docker run -tid -e MYSQL_ROOT_PASSWORD=zuogongjiao mariadb

创建成功会出现一串ID值,如果出现其他提示信息那就是有问题了。

创建成功之后,我们通过下面这个命令获取容器的ID以通过ID进入容器操作(也可以在创建的时候指定容器名)

docker ps

ddefb0e93244a234b2eff3319e502553.png

创建容器并查看容器运行ID

得到ID之后,我们通过下面这个命令进入容器

docker exec -ti b /bin/bash

其中,b是ID的第一个字符,也就是无需指定全部的ID值也可以进入一个容器(前提是通过特点字符就能筛选出唯一的容器)

进入容器之后,我们就可以登录并创建数据库了:

mysql -uroot -pzuogongjiao

create database wordpress;

数据库密码是创建容器时指定的:-e MYSQL_ROOT_PASSWORD=zuogongjiao

eeca3991ed8d22ca46409d24c29e6f66.png

创建数据库

数据库创建完成之后,可以选择创建一个普通用户用于wordpress的数据管理,也可以直接使用root用户,这里建议使用普通用户去给wordpress使用,所以这时候还需要使用下面的命令创建用户:

grant all privileges on wordpress.* to 'zgj'@'%' identified by 'zuogongjiao';

创建完成之后,我们可以退出数据库使用新的用户登录:

quit;

mysql -uzgj -pzuogongjiao

1e205f03819d29ba7d09534b5ee7b421.png

使用新用户登录数据库

然后查看当前可操作的数据库:

show databases;

69657d0ad944e427deefcc20fa3a791d.png

查看数据库列表

那么到这步,数据库部分就完成了,下面开始创建wordpress容器:

创建Wordpress容器

创建之前需要先执行下面的命令回到宿主机:

exit

25eece03f8383424eb18a99232e787fa.png

为了便于管理容器,我们可以对数据库容器进行重命名,命令如下:

docker rename elastic_bhaskara db

121764a4c207b6b52a00291194e54236.png

修改好容器名之后就继续创建wordpress容器,这次可以加上--link参数,具体命令如下:

docker run -tid --name=wordpress --link db:mysql -p 80:80 wordpress

然后如果想看容器的运行情况,可以使用下面的命令查看实时日志:

docker logs -f wordpress

13c6c5bec695fd0354e067d501ae33b2.png

查看容器运行日志

创建容器之后,我们可以直接在浏览器输入宿主机的IP(前提是映射80端口,否则需要IP+端口的方式)进行访问,然后得出这样一个界面:

7adcc6a2972486c3ea3e8914b249898c.png

wordpress安装程序

我们直接点继续,然后就可以填写网站信息了,填写完成之后点击安装wordpress:

6ad59e4173ececa7c41f2c30f467f215.png

填写网站信息

然后就安装完成了:

0357816c96b5edab28db5bf6b6791577.png

wordpress安装完成

然后我们再次输入Docker宿主机IP地址进行访问:

0e91ecc1b304befac8ea895c3263a131.png

这时候就可以看到,我们的网站已经搭建完成了,中途没有出现任何php错误,不兼容之类的环节,可以说非常的顺利,另外Docker作为一个跨平台的工具,可以在Mac、Windows、Linux中随处运行与构建,大大的方便了运维工作。

你认为Docker是否可以在学习或工作中帮助到你,请在评论中说出来吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值