Docker部署软件实战
1.Docker安装Nginx
1.1下载Nginx镜像
bash
docker pull nginx1.2运行Nginx容器
bash
docker run -d --name nginx01 -p 3344:80 nginx参数说明:
| 参数 | 作用 |
|---|---|
-d | 后台运行容器 |
--name nginx01 | 指定容器名称为nginx01 |
-p 3344:80 | 把宿主机3344端口映射到容器80端口 |
nginx | 使用nginx镜像创建容器 |
1.3查看Nginx容器
bash
docker ps示例输出:
bash
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c24816da5b7c nginx "/docker-entrypoint.…" 43 seconds ago Up 42 seconds 0.0.0.0:3344->80/tcp, [::]:3344->80/tcp nginx011.4进入Nginx容器
bash
docker exec -it nginx01 /bin/bash查看Nginx配置目录:
bash
root@c24816da5b7c:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params1.5退出并停止Nginx容器
bash
#1.退出容器
exit
#2.停止容器
docker stop c24说明:c24是容器id的前几位,只要能唯一匹配容器即可。
2.端口暴露概念

端口映射格式:
bash
-p 宿主机端口:容器端口示例:
bash
docker run -d --name nginx01 -p 3344:80 nginx含义:访问宿主机的3344端口时,会转发到Nginx容器内部的80端口。
3.Docker安装Tomcat
3.1临时运行Tomcat
bash
docker run -it --rm tomcat:9.0说明:--rm表示容器停止后自动删除,一般用于临时测试。
3.2下载Tomcat镜像
bash
docker pull tomcat3.3查看镜像
bash
docker images3.4运行Tomcat容器
bash
docker run -d -p 8080:8080 --name tomcat01 tomcat参数说明:
| 参数 | 作用 |
|---|---|
-d | 后台运行容器 |
-p 8080:8080 | 把宿主机8080端口映射到容器8080端口 |
--name tomcat01 | 指定容器名称为tomcat01 |
tomcat | 使用tomcat镜像创建容器 |
3.5测试Tomcat访问
bash
curl localhost:80803.6进入Tomcat容器检查目录
bash
docker exec -it tomcat01 /bin/bash查看webapps目录:
bash
root@1b5e1f8bd4c2:/usr/local/tomcat/webapps# ls
root@1b5e1f8bd4c2:/usr/local/tomcat/webapps# ls -a3.7Tomcat访问异常问题
问题:
1.Linux命令少了。
2.webapps目录为空。
原因:阿里云镜像默认是最小镜像,不必要的内容会被剔除,只保留最小可运行环境。
解决方案:把webapps.dist目录下的文件拷贝到webapps目录下。
bash
cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/