nginx部署

1:搜索nginx

  1. docker search nginx

image.png
2:拉取镜像

  1. docker pull nginx

3:启动nginx镜像

  1. docker run -d --name nginx01 -p:3344:80 nginx #-d后台启动 --name 起名 -p 端口映射 nginx启动镜像

4:访问

curl localhost:3344

5:端口暴露的概念
image.png
6:进入容器

docker exec -it nginx01 /bin/bash #交互式进入容器内部

Tomcat部署

# 官方使用 用完即删除--一般用于测试
docker run  -it --rm tomcat:9.0  #-rm

1:pull 部署

docker pull tomcat:9.0

2:启动

docker -d --name tomcat01 -p 3355:8080 tomcat

3:测试没有问题

#进入容器后发现是阉割的
1:linux命令少了 2:没有webapps
#阿里云镜像原因,默认是最小的镜像,剔除所有不必需的功能
#保证最小的运行环境



#拷贝命令
cp -r webapp.dist/* webapps

部署 es+kibana

#es 暴露的端口很多
#es 十分耗内存
#es 的数据一般需要放置到安全目录 挂载
# --net somenetword ?网络配置

 #下载启动
 docker run -d --name elasticsearch --net somenetwork 
 -p 9200:9200 -p 9300:9300 
 -e "discovery.type.type=single-node" elasticsearch:tag

 #启动后发现很卡 es十分耗内存
 docker stats 容器id #查看容器cpu,内存的状态

增加内存限制,修改配置参数

# -e
 docker run -d --name elasticsearch --net somenetwork 
 -p 9200:9200 -p 9300:9300 
 -e "discovery.type.type=single-node" 
 -e ES_JAVA_OPTS="-Xms64m -Xmx512m"
 elasticsearch:7.6.2

image.png

mysql部署安装

# 获取镜像
docker -pull mysql:5.7

# 运行容器,需要数据库,#启动安装mysql,需要配置密码!
docker run -d -p 3306:3303 -v /home/mysql/conf:/ect/mysql/cong

#官方测试 docker run name some mysql e MYSQL_ROOY_PASSWORD-MY SECRET PW D MYSQL:TAG

#启动我们的
-d 后台运行 --name取名 -v卷挂载 -p端口映射 -e环境配置 
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

#启动成功后,我们本地使用Navicat测试一下

具名挂载 匿名挂载

# 匿名挂载
-v 容器内路径
docker run -d -P --name nginx02 -v /etc/nginx nginx
# 查看所有的volumn的情况
docker volumn ls
#这里发现我们在-v只写了容器内的路径,没有写容器外的路径


# 具名挂载
doker run -d -p --name nginx03 -v juming-nginx:/etc/nginx nginx
#通过 -v 卷名:容器内路径
#查看这个卷
docker volumn inspect 卷名

image.png
所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxxx/_data
我们通过具名挂载可以方便我们找到一个卷,大多数情况在使用具名挂载

如何判断是具名挂载还是匿名挂载,还是指定路径挂载

 -v 容器内路径  #匿名挂载
 -v 卷名:容器内路径 #具名挂载
 -v /宿主机路径::容器内路径  #指定路径挂载