docker相关的应用部署的总体步骤:
步骤1:获取对应镜像;
步骤2:生成容器
- 外部是不能直接访问容器数据的,但是可以通过容器跟主机间的端口映射来间接访问容器数据,所以必须要带上-p参数,格式为:
-p 主机(宿主)端口:容器端口
,外部设备可以通过主机ip:主机端口
来间接访问容器内指定数据 - 因为容器类似于进程,如果被kill或删掉,则容器中的数据就不存在,如果想要容器数据的持久化,最好先了解下数据卷的概念:docker入门教程
步骤3:在容器中操作或外部访问
MySQL部署
-
搜索mysql镜像
-
拉取mysql镜像
-
创建mysql容器
步骤:
- 在/root目录下创建mysql目录用于存储mysql数据信息(作为数据卷);
- 执行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
即表示当前路径
-
操作容器中的mysql
-
远程连接mysql并操作
远程操作之后,容器内mysql可以查看到是有更新的
tomcat部署
步骤1:查找并拉取tomcat
如果已有tomcat镜像,则不用进行此步骤
步骤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目录下编写资源并访问
nginx部署
步骤1:查找并拉取nginx
步骤2:创建容器
创建成功后,访问服务器的80端口,能正常访问nginx的欢迎页面
编写并访问资源
在nginx容器中,nginx默认的资源访问路径是:/usr/share/nginx/html,所以我们在该目录下添加test.html文件
访问test.html: