Docker-练习

Docker-练习

安装LAMP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#拉取镜像
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.查询镜像

1
2
3
4
5
└─# docker search lamp         
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mattrayner/lamp A simple LAMP docker image running the prere… 285 [OK]
linode/lamp LAMP on Ubuntu 14.04.1 LTS Container 181
tutum/lamp Out-of-the-box LAMP image (PHP+MySQL) 148

2.拉取镜像

1
docker pull tutum/lamp

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

1
2
3
4
└─# 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上被挂载的位置

4.访问端口

img

安装LNMP

1.查询镜像

1
2
3
4
└─# docker search lnmp
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
2233466866/lnmp https://hub.docker.com/r/2233466866/lnmp 119
winstonpro/lnmp based on ubuntu 14.04 27

2.拉取镜像

1
docker pull winstonpro/lnmp

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

1
└─#  docker run --name=lnmp -d -p 8000:80 -p 3000:3306 -v /var/www/app/lnmp/:/usr/share/nginx/html win

4.访问

img

安装Tomcat

1.查找tomcat镜像

1
2
3
4
5
6
7
└─# docker search tomcat
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat Apache Tomcat is an open source implementati… 3182 [OK]
tomee Apache TomEE is an all-Apache Java EE certif… 93 [OK]
dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 58 [OK]
kubeguide/tomcat-app Tomcat image for Chapter 1 31
consol/tomcat-7.0 Tomcat 7.0.57, 8080, "admin/admin" 18 [OK]

2.拉取tomcat版本为7的镜像

1
docker pull tomcat:7

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

1
docker ps -a

没找到,说明没启动,需要启动tomcat容器。

查看一下tomcat镜像

1
2
3
4
5
6
┌──(root💀kali)-[/home/kali]
└─# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 7 9dfd74e6bc2f 4 months ago 533MB
winstonpro/lnmp latest 129456ccb561 4 years ago 1.72GB
tutum/lamp latest 3d49e175ec00 5 years ago 427MB

启动Tomcat容器

1
docker run --name tomcat -d -p 9090:8080 9dfd74e6bc2f

容器启动成功。

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

1
2
└─# docker exec -it tomcat /bin/bash
root@068009bd1ab5:/usr/local/tomcat#

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

1
2
3
4
root@068009bd1ab5:/usr/local/tomcat# mv ./webapps.dist/ROOT webapps/
root@068009bd1ab5:/usr/local/tomcat# cd webapps
root@068009bd1ab5:/usr/local/tomcat/webapps# ls
ROOT

5.访问
img

安装Nginx

1.查找nginx镜像

1
2
3
└─# docker search nginx                                                                                                                                                                 130 ⨯
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 15839 [OK]

2.拉取nginx镜像

1
docker pull nginx

3.启动nginx容器

1
2
3
4
└─# docker run --name nginx-test -p 8888:80 -d nginx 
--name nginx-test:容器名称。
-p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。

4.访问

img

5.设置反向代理并测试
首先进入容器

1
2
└─# docker exec -it nginx-test /bin/bash
root@e97987b1f84f:/#

安装vim

1
2
3
4
root@e97987b1f84f:/# sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
root@e97987b1f84f:/# apt-get clean
root@e97987b1f84f:/# apt-get update
root@e97987b1f84f:/# apt-get install vim

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

1
vim /etc/nginx/nginx.conf

并添加以下选项

img

打开/etc/nginx/conf.d/目录,发现.conf后缀的文件只有default.conf文件。

1
2
3
root@e97987b1f84f:/# cd /etc/nginx/conf.d
root@e97987b1f84f:/etc/nginx/conf.d# ls
default.conf

打开default.conf文件

1
vim /etc/nginx/conf.d/default.conf

配置反向代理:

1
2
3
4
5
6
7
8
server{
listen 80;
server_name 192.168.182.130:8888; #nginx反向代理服务器IP地址或域名
location / {
root /usr/log/nginx/html;
index index.html index.htm;
proxy_pass http:192.168.182.130:9999; #被代理的服务IP地址或域名
}

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

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

1
2
3
docker inspect 容器名/id

└─# docker inspect nginx

保存退出,然后重启容器

1
docker restart nginx-test

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

安装MySQL

1.查找MySQL镜像

1
docker search mysql

2.拉取MySQL版本5.7的镜像

1
docker pull mysql:5.7

3.启动MySQL容器

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

测试一下mysql

1
2
3
4
5
6
7
8
9
10
└─# mysql -h 192.168.182.130 -P 3306 -u root -p123456                                                                                                          130 ⨯
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

连接成功,说明MySQL安装成功

5.目录映射
先停止并删除MySQL的docker容器

1
2
3
└─# docker stop mysql 

└─# docker rm mysql

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

1
2
3
4
5
6
7
└─# 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

d27d52283a0f8e419b3e9fb14a074c72ae42374e9127ced3e9aa3be31c84e596

参考:https://blog.csdn.net/qq_43625917/article/details/107051203


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!