使用Docker容器技术搭建Tinyshop电子商城

环境:centos7.9
内存不低于4G
硬盘不低于60G
NAT模式

一、Doceker安装

1. 禁用防火墙和SElinux


   1. systemctl stop firewalld	#禁用防火墙
   2. systemctl disable firewalld
   3. setenforce 0	#关闭SELinux安全机制
   4. vi /etc/selinux/config	# 将“SElinux”选项设置为“disabled”,重启系统即可生效

2. 设置Docker仓库


 1. yum install -y yum-utils device-mapper-persistent-data lvm2
 2. yum-config-manager --add-repo "镜像仓库源网址"	# 这将在/etc/yum.repos.d/ 目录下创建一个名为docker-ce.repo的文件,该文件中定义了多个仓库地址,默认Stable(稳定版)被启用

  

1)yum-utils提供yum-config-manager工具,devicemapper存储驱动程序需要device-mapper-persistent-data和lvm2

mapper:n. 映射,制图人
persistent:adj. 持续的,执意的

2)这里使用的是阿里的镜像仓库源,在这里插入图片描述

3. 安装Docker CE


  1. yum -y install docker-ce
  2. docker --version # 查看安装版本
  3. yum list docker-ce --showduplicates |sort -r	# 列出可用的Docker版本,“sort -r”表示对结果按版本由高到底排序
  4. systemctl start docker	#启动docker
  5. systemctl enable docker

安装了最新版的docker-ce,并会自动安装docker-ce-cli、containerd.io软件包

duplicate:n. 副本,多重记录,复制品
sort:n. 分类,排序

4. 配置镜像加速器


  1. vi /etc/docker/daemon.json		#一般daemon.json文件是没有的需要自建
  daemon.json文件中的内容,这里采用的是阿里云的镜像加速器
 {
  "registry-mirrors": ["https://********.mirror.aliyuncs.com"]
}
  systemctl daemon-reload		#重新加载daemon.json配置文件
  systemctl restart docker	#重启docker,以使docker配置文件生效

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式

sejyyn5s

二、业务部署

方法一:

拉取镜像并创建容器

1. 拉取镜像


  1. docker pull centos:7
  2. docker pull mysql:5.7		#拉取mariadb的镜像也可以

2. 创建CentOS容器作为web服务器


   1. docker run -d -p 8080:80 --name centos7_web --privileged=true centos:7 /usr/sbin/init		#创建并运行
 
> > --privileged=true:使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。


  2. docker exec -ti centos7_web /bin/bash 	#进入运行的容器执行命令
 
> 进入centos_web后,下载php,php-gd,php-mysql,httpd,unzip,开启httpd服务


  3. docker cp TinyShopV3.1.1_data.zip  centos7:/var/www/html	#用docker cp 命令将Docker主机上的电子商城系统复制到centos7_web容器上来,再将其解压,添加权限,即可用浏览器访问
 
 

3. 创建MySQL容器作为数据库服务器


  1. docker run -d --name mysql_1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234567 mysql:5.7
  2. docker exec -ti mysql_1 /bin/bash	
  	mysql -u root -p	#进入mysql_1容器后,输入此命令可进入数据库命令行
 

> -e MYSQL_ROOT_PASSWORD:在创建mysql容器的同时创建一个root用户,密码为123456

1)若创建容器使用的镜像是centos的latest版本,在使用yum源安装时候,出现下面问题 “error:Failed to download metadata for repo ‘AppStream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist”,这只是其中一个问题。 具体解决方案1.No URLs in mirrorlist2.Failed to set locale, defaulting to C.UTF-8
2)若创建容器使用的镜像是centos的7版本,再使用"systemctl"命令时提示“不允许操作”,建议重建容器,执行docker run 或docker create命令时,添加–privileged=true参数以增添权限.

在这里插入图片描述

方法二:

使用Docker Compose部署

1. 安装Docker Compose

1) 在官网上下载和Docker引擎版本相匹配的Dokcer Compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。在 Docker Compose 文件 (docker-compose.yaml) 中,有一个 version 字段用来指定 Docker Compose 文件的版本,表示 Docker Compose 文件的语法和功能的版本。不同的版本可能支持不同的特性和语法,因此在 Docker Compose 文件指定的version必须与安装在主机上的Docker Compose版本相匹配。否则使用不同版本可能会出现兼容性的问题,导致出现一些意外行为或错误。通常情况下,使用最新版本的Docker Compose,因为它包含最新的特性和修复了已知的漏洞。
查看Docker Compose和Docker版本对应关系:
Docker Compose和Docker版本对应关系
对于Dokcer Compose1.25.4以及更早的版本的下载,可以参考官网的方法

curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

在这里插入图片描述
下载很慢,需要耐心等待
在这里插入图片描述
若docker引擎是直接使用 #yum -y install docker-ce 命令下载的,Dokcer Compose的插件包也会一同安装,但不是docker-compose命令,是docker 中的一个compose命令,即docker compose ,作用与docker-compose一致。

编写docker-compose.yaml文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Docker容器搭建socket服务器可以方便地进行部署和管理。下面是一个简单的步骤: 1.编写Dockerfile文件 首先需要编写一个Dockerfile文件,指定要使用的镜像、安装必要的软件和配置环境变量等,例如: ``` FROM python:3.7-alpine WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python", "server.py"] ``` 2.编写socket服务器代码 编写socket服务器代码,例如: ``` import socket HOST = '0.0.0.0' PORT = 8080 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((HOST, PORT)) s.listen() conn, addr = s.accept() with conn: print('Connected by', addr) while True: data = conn.recv(1024) if not data: break conn.sendall(data) ``` 3.构建Docker镜像 在Dockerfile所在目录执行以下命令来构建Docker镜像: ``` docker build -t my-socket-server . ``` 其中,my-socket-server是镜像名称,可以自定义。 4.运行Docker容器 使用以下命令来运行Docker容器: ``` docker run -p 8080:8080 my-socket-server ``` 其中,8080是容器内部端口,也是socket服务器监听的端口,可以自定义;8080是宿主机端口,用于访问socket服务器。 5.测试socket服务器 使用telnet或其他工具来测试socket服务器,例如: ``` telnet localhost 8080 ``` 输入任意字符并回车,可以看到服务器返回该字符。 以上就是使用Docker容器搭建socket服务器的基本步骤,可以根据实际需求进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值