docker相关的应用部署的总体步骤:
步骤1:获取对应镜像;
步骤2:生成容器

  • 外部是不能直接访问容器数据的,但是可以通过容器跟主机间的端口映射来间接访问容器数据,所以必须要带上-p参数,格式为:-p 主机(宿主)端口:容器端口,外部设备可以通过主机ip:主机端口来间接访问容器内指定数据
  • 因为容器类似于进程,如果被kill或删掉,则容器中的数据就不存在,如果想要容器数据的持久化,最好先了解下数据卷的概念

步骤3:在容器中操作或外部访问

MySQL部署

  1. 搜索mysql镜像
  2. docker发布项目 docker发布应用_数据

  3. 拉取mysql镜像
  4. docker发布项目 docker发布应用_mysql_02

  5. 创建mysql容器

步骤:

  1. 在/root目录下创建mysql目录用于存储mysql数据信息(作为数据卷);
  2. 执行docker run命令:

docker run命令说明:

docker run -id --name=test_mysql -p 3307:3306 \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=wenxiaoba \
mysql:latest
  • -p 3307:3306:将容器的3306端口映射到主机的3307端口(外部机器只能通过3307端口来访问mysql数据,一般情况下2个端口设置成一样的,这里为了明显区分外部访问端口和容器端口所以设置了不一样,后面的示例则会保持一致)
  • -v $PWD/conf:/etc/mysql/conf.d:将主机当前conf目录挂载到容器的/etc/mysql/conf.d(配置目录)
  • -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的logs目录(日志目录)
  • -v $PWD/data:/var/lib/mysql:将主机当前目录下的data目录挂载到容器的/var/lib/mysql目录(mysql数据目录)
  • -e MYSQL_ROOT_PASSWORD=wenxiaoba:初始化mysql的root用户的密码

注意:$PWD类似于linux的pwd命令,表示列出当前命令所在路径,$PWD即表示当前路径

docker发布项目 docker发布应用_docker发布项目_03

  • 操作容器中的mysql
  • docker发布项目 docker发布应用_docker发布项目_04

  • 远程连接mysql并操作
  • docker发布项目 docker发布应用_docker发布项目_05

  • 远程操作之后,容器内mysql可以查看到是有更新的
  • docker发布项目 docker发布应用_docker_06

tomcat部署

步骤1:查找并拉取tomcat

如果已有tomcat镜像,则不用进行此步骤

docker发布项目 docker发布应用_docker_07

步骤2:创建容器

执行docker run命令:

docker run -id --name=test_tomcat -p 8080:8080 tomcat:latest

参数说明:

  • -p 8080:8080:将容器的8080端口(后一个)映射到主机的8080端口(前一个),外部设备就可通过访问主机的8080端口,间接访问tomcat容器。

    注意:tomcat容器刚创建成功时,/usr/local/tomcat下的webapps目录为空,webapps.dist有tomcat欢迎页等配置文件(docker官方提供的,有人说是因为想让用户不忘记挂载数据卷而设置的,实际原因不得而知),tomcat通过webapps目录访问资源的,所以我们需要将webapps.dist的内容复制到webapps中,复制成功后,访问对应Ip和端口即可显示默认的欢迎页

步骤3:编写并访问资源

我们可以在容器中的/usr/local/tomcat/webapps/ROOT目录下编写资源并访问

docker发布项目 docker发布应用_tomcat_08

docker发布项目 docker发布应用_数据_09

nginx部署

步骤1:查找并拉取nginx

docker发布项目 docker发布应用_docker_10

步骤2:创建容器

docker发布项目 docker发布应用_docker发布项目_11


创建成功后,访问服务器的80端口,能正常访问nginx的欢迎页面

docker发布项目 docker发布应用_docker发布项目_12

编写并访问资源

在nginx容器中,nginx默认的资源访问路径是:/usr/share/nginx/html,所以我们在该目录下添加test.html文件

docker发布项目 docker发布应用_tomcat_13


访问test.html:

docker发布项目 docker发布应用_数据_14