Docker 安装nginx
#1、搜索nginx 镜像,建议大家去docker 搜索,可以看到帮助文档
docker search nginx
#2、下载nginx 镜像
docker pull nginx
#3、安装运行容器,将容器命名为nginx01 3344 是宿主机端口 80是容器端口,宿主机&阿里云需要开启端口
docker run -d --name nginx01 -p 3344:80 nginx
#4、查看
curl localhost:3344
#5、进入容器
docker exec -it 容器id /bin/bash
docker 安装Tomcat
docker run -d -p 3311:80 --name tomcat01 tomcat
#问题
#1、进入容器,Linux命令少了
#2、webapps
#原因:阿里云镜像原因,默认最小镜像,非必要的删除掉,确保最小可运行的环境
#思考问题,我们以后要部署项目,每次都需要进入容器是不是很麻烦,我们是否可以在外部
#提供一下映射路径,webapps 在外部部署项目,同步到容器内就好了
问题:部署好了Tomcat ,可以访问,但是提示404,为什么?
原因:阿里云镜像原因,默认最小镜像,非必要的删除掉,确保最小可运行的环境
解决方案:
#1、进入容器内
docker exec -it 容器id /bin/bash
#2、复制webapps.dist 文件到webapps
cp -r webapps.dist/* webapps
解决后,访问
docker elasticsearch+kibana
1、elasticsearch 暴露的端口非常多
2、elasticsearch 占用内存大
3、elasticsearch 的数据需要放置到安全目录,挂载
#--net somenetwork 网络配置
$ docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.2
#启动了elasticsearch Linux 就非常卡
firewall-cmd --state
#删除容器,加内存限制,修改配置文件,-e 环境修改
#启动的该容器占用内存限制在64兆到512兆之间 -e ES_JAVA_OPTS="-Xms64m -Xmx512m"
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.17.2
#查看容器的内存占用情况
docker stats 容器id
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
769a98a46852 elasticsearch 0.47% 519.9MiB / 1.776GiB 28.59% 41.3MB / 770kB 121MB / 84MB 54
如何使用kibana 链接 elasticsearch?
安装mysql
#-d 后台运行 -p 端口映射 -v 数据卷 -e 环境配置 MYSQL_ROOT_PASSWORD 设置密码 --name 容器的名称
docker run -d -p 3311:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name=mysql01 mysql
#启动成功后,使用Navicat Premium连接mysql
#创建test 数据库,然后到宿主机/home/mysql/data 目录下查看是否有test数据库
将容器删除,挂载到宿主机上的数据卷依旧存在没有丢失,这个就实现了容器的持久化功能
多个mysql 同步数据
docker run -d -p 3344:3306 -e MYSQL_ROOT_PASSWORD=123456 --name=mysql02 --volumes-from mysql01 mysql
问题:mysql02 无法启动