Docker练习(一)-安装LA(N)MP、Tomcat、Nginx和MySQL

    技术2022-07-10  105

    0x01 安装LAMP

    可能用到的命令

    #拉取镜像 docker pull tutum/lamp #查看镜像 docker images #启动容器并绑定端口 docker run -d -p 8080:80 -p 3306:3306 -v /var/www/app/:/var/www/html tutum/lamp #查看运行的容器 docker ps docker ps -a #进入正在运行的容器 docker exec -it 'id/name' /bin/bash #退出容器 exit #开启、重启、停止容器 docker start 'id/name' docker restart 'id/name' docker stop 'id/name'

    具体安装过程如下: 1.查询镜像

    root@qwzf:~# docker search lamp NAME DESCRIPTION STARS OFFICIAL AUTOMATED linode/lamp LAMP on Ubuntu 14.04.1 LTS Container 179 mattrayner/lamp A simple LAMP docker image running the prere… 170 [OK] tutum/lamp Out-of-the-box LAMP image (PHP+MySQL) 132 greyltc/lamp a super secure, up-to-date and lightweight L… 99 [OK] fauria/lamp Modern, developer friendly LAMP stack. Inclu… 79 [OK]

    2.拉取镜像

    docker pull tutum/lamp

    3.启动守护式容器并端口映射和挂载目录

    root@qwzf:~# docker run --name=lamp -d -p 8080:80 -p 3306:3306 -v /var/www/app/lamp/:/var/www/html tutum/lamp #8080 宿主机端口 80 docker端口 #/var/www/app/lamp/ 宿主机要挂载的目录 #/var/www/html docker上被挂载的位置

    0x02 安装LNMP

    1.查询镜像

    docker search lnmp

    2.拉取镜像

    docker pull winstonpro/lnmp

    3.启动守护式容器并端口映射和挂载目录

    root@qwzf:~# docker run --name=lnmp -d -p 8000:80 -p 3000:3306 -v /var/www/app/lnmp/:/usr/share/nginx/html winstonpro/lnmp

    0x03 安装vim

    方式一:默认源安装 执行apt-get update更新源

    root@dc3d333fc181:~# apt-get update

    更新完过后我们就可以安装了vim了

    root@dc3d333fc181:~# apt-get install vim

    以上的方式虽然可以实现安装vim,但是速度很慢。下面是更快的方式 方式二:aliyun源安装 因为没有vi,vim编辑工具,我这里使用sed命令进行编辑文件内容。 首先查看默认源地址:

    root@dc3d333fc181:~# cat /etc/apt/sources.list # deb http://snapshot.debian.org/archive/debian/20200130T000000Z buster main deb http://deb.debian.org/debian buster main # deb http://snapshot.debian.org/archive/debian-security/20200130T000000Z buster/updates main deb http://security.debian.org/debian-security buster/updates main # deb http://snapshot.debian.org/archive/debian/20200130T000000Z buster-updates main deb http://deb.debian.org/debian buster-updates main

    从上面的输出内容我们可以看出,默认会从deb.debian.org去更新源信息。我们将其替换为aliyun的源地址:

    root@dc3d333fc181:~# sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list

    替换完源后我们就可以安装vim了

    root@dc3d333fc181:~# apt-get clean root@dc3d333fc181:~# apt-get update root@dc3d333fc181:~# apt-get install vim

    0x04 安装Tomcat

    1.查找tomcat镜像

    docker search tomcat

    2.拉取tomcat版本为7的镜像 可以先看一下镜像是否已经拉取

    docker images

    拉取tomcat版本为7的镜像

    docker pull tomcat:7

    3.启动Tomcat 可以先看一下容器是否已经启动

    docker ps -a

    没找到,说明没启动,需要启动tomcat容器。 查看一下tomcat镜像

    docker images

    启动Tomcat容器

    docker run --name tomcat -d -p 8000:8080 734d712b8777

    容器启动成功。 4.移动Tomcat自带的项目文件ROOT 进入容器

    docker exec -it tomcat /bin/bash

    将webapps.dist目录文件下tomcat自带的项目文件ROOT移动到webapps目录文件下

    mv ./webapps.dist/ROOT webapps/

    5.访问测试 访问测试一下 访问成功,Tomcat服务构建成功。

    0x05 安装Nginx并实现反向代理

    1.查找nginx镜像

    docker search nginx

    2.拉取nginx镜像 拉取箭头所指的镜像

    docker pull nginx

    3.启动nginx容器

    docker run --name nginx_1 –d –p 8888:80 nginx

    4.访问测试 访问成功,说明nginx安装成功。 5.设置反向代理并测试 首先进入容器

    docker exec -it nginx_1 /bin/bash

    安装vim

    sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list apt-get clean apt-get update apt-get install vim

    用vim打开nginx.conf配置文件,并添加以下选项

    vim /etc/nginx/nginx.conf

    打开/etc/nginx/conf.d/目录,发现.conf后缀的文件只有default.conf文件。 打开default.conf文件配置反向代理:

    vim /etc/nginx/conf.d/default.conf server{ listen 80; server_name 39.105.93.165:8888; #nginx反向代理服务器IP地址或域名 location / { root /usr/log/nginx/html; index index.html index.htm; proxy_pass http:39.105.93.165:8000; #被代理的服务IP地址或域名 }

    意思是:通过访问http://39.105.93.165:8888,其实访问到的是http://39.105.93.165:8000

    也可以使用docker内网地址进行反向代理配置,通过公网ip访问。 查看docker内网ip

    docker inspect 容器名/id

    保存退出,然后重启容器

    docker restart nginx_1

    然后访问http://39.105.93.165:8888 这样访问的nginx服务器http://39.105.93.165:8888 其实是访问到了的是服务地址为http://39.105.93.165:8000的tomcat服务 从而实现简单的反向代理。

    0x06 安装MySQL

    1.查找MySQL镜像

    docker search mysql

    2.拉取MySQL版本5.7的镜像

    docker pull mysql:5.7

    3.启动MySQL容器

    docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

    4.使用navicat连接测试 连接成功,说明MySQL安装成功 5.目录映射 先停止并删除MySQL的docker容器

    docker stop mysql docker rm mysql

    使用-v选项对/etc/mysql、/var/log/mysql、/var/lib/mysql目录进行目录映射

    docker run --name mysql_1 -p 3306:3306 \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

    映射成功

    Processed: 0.010, SQL: 9