5. docker 应用部署
创建时间:2026-05-17 10:41
长度:1461
浏览:0
评论:0
应用部署:
容器内的网络服务和外部机器不能直接通信
外部机器和宿主机可以直接通信
宿主机和容器可以直接通信
当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上。外部机器访问宿主机的该端口,从而间接访问容器的服务。
这种操作称为:端口映射
部署步骤
1. 搜索镜像
2. 拉取镜像
3. 创建容器、设置端口映射、数据卷加载
4. 测试访问
1. mysql 部署
mkdir mysql_demo && cd mysql_demo # 创建目录
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0.41
• 参数说明:
-p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
-v $PWD/conf:/etc/mysql/conf.d: 将主机当前目录下的conf/my.cnf 挂载到容器的/etc/mysql/my.cnf。配置目录
-v $PWD/logs:/logs: 将主机当前目录下的logs 目录挂载到容器的/logs。日志目录
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的/var/lib/mysql。数据目录
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。2. tomcat 部署
mdkir tomcat_demo && cd tomcat_demo
docker run -id --name=c_tomcat \
-p 8080:8080 \
-$PWD:/usr/local/tomcat/webapps\
tomcat
参数说明:
-p 8080:8080:将容器的8080端口映射到主机的8080端口
-v $PWD:/usr/local/tomcat/webapps: 将主机中当前目录挂载到容器的webapps
使用外部机器访问tomcat
3. nginx 部署
docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/1og/nginx \
-v $PWD/htm1:/usr/share/nginx/htm7 \
nginx
参数说明:
-p 80:80:将容器的80端口映射到宿主机的 80端口。
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf: 将主机当前目录下的/conf/nginx.conf 挂载到容器的:/etc/nginx/nginx.conf。配置目录
-v $PWD/logs:/var/log/nginx:将主机当前目录下的logs 目录挂载到容器的/var/log/nginx。日志目录4. redis 部署
docker run -id --name=c_redis -p 6379:6379 redis: 5.01