Docker系列-安装应用

官方仓库地址 https://docs.docker.com/

下载指定版本先在官网搜索有没有这个版本,不写版本默认laster

安装jdk

#查找镜像
docker search jdk11
#下载镜像
[root@localhost ~]# docker pull youmoni/jdk11-docker

[root@localhost ~]# docker images
REPOSITORY               TAG             IMAGE ID       CREATED        SIZE
wurstmeister/kafka       2.11-0.11.0.3   94eb100d9305   2 months ago   413MB
youmoni/jdk11-docker     latest          2458ad815d3e   8 months ago   713MB
wurstmeister/zookeeper   latest          3f43f72cb283   2 years ago    510MB
#重命名镜像
docker tag 2458ad815d3e jdk:11

部署springboot项目时,dickerfile文件指定Java环境
FROM jdk:11
.....

安装nginx

高性能的HTTP和反向代理web服务器

docker pull nginx:1.18

#后台启动nginx,并指定名称和端口
[root@localhost ~]# docker run -d --name nginx01 -p 3344:80 nginx:1.18
40ab4ab0cac5ce248cd4245323cac43dc059835cde7369a662acb201326f35e9
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE        COMMAND                  CREATED         STATUS         PORTS                  NAMES
40ab4ab0cac5   nginx:1.18   "/docker-entrypoint.…"   6 seconds ago   Up 5 seconds   0.0.0.0:3344->80/tcp   nginx01

#测试访问nginx
http://localhost:3344

安装redis

##搜索镜像
>docker search redis
##下载镜像
>docker pull redis:xx

##
>docker pull redis:xx

##编写自定义的redis配置文件/etc/redis/redis.conf
requirepass xxx      --设置密码
#bind 127.0.0.1      --允许远程访问

##启动redis
>docker run -p 6379:6379 --name redis -v /docker-software/redis/redis.conf:/etc/redis/redis.conf  -v /docker-software/redis/data:/data -d redis:6 redis-server /etc/redis/redis.conf

##进入redis
>docker exec -it e1e736489f60 redis-cli 

##如果修改配置文件中密码重启没生效,只能进入redis执行以下命令修改
>config set requirepass 123456
>quit

安装tomcat

Web 应用服务器

docker pull tomcat:10

docker run -it --rm -p 8888:8080 tomcat:10

--rm             一般用于启动服务测试完就删除容器
#测试访问
http://localhost:8888

#一般tomcat容器的webapps下是没有项目的,可以从别的地方复制一个
root@e28938a4afcf:/usr/local/tomcat# cp -r webapps.dist/* webapps

#再次测试访问就可以见到正常的tomcat页面了

安装es

基于Lucene的搜索服务器
安装elasticsearch非常耗内存,低内存一定要停掉别的服务

docker pull elasticsearch:7.10.1

#创建网络
docker network create esnet

docker run -d --name es --network esnet -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx512m" elasticsearch:7.10.1

#可选参数
-p 主机端口:容器端口                #开放端口
--network somenetwork               #指定一个网络名,用于其他容器访问,如kibana
-e                                      #启动参数
    ES_JAVA_OPTS="-Xms256m -Xmx512m"    #指定分配内存和最大内存

#测试访问
http://43.226.152.27:9200/

安装 kibana

免费的开源可视化工具,注意与elasticsearch版本对应

docker pull kibana:7.10.1

#找到elasticsearch容器的IP,Networks->IPAddress
docker inspect es

#启动,es传入上一步查到的es地址
docker run -d --name kibana -p 5601:5601 -e "ELASTICSEARCH_URL=http://172.18.0.2:9200" kibana:7.10.1

#测试访问 
http://43.226.152.27:5601/

访问kibana页面错误 Kibana server is not ready yet

#进入kibana容器修改配置
docker exec -it kibana /bin/bash

cd config
vi kibana.yml

#修改为主机地址
elasticsearch.hosts: [ "http://xx.xx.xx.xx:9200" ]
保存退出
esc  shift+:    wq
exit

#重启kibana
docker restart kibana 

安装Portainer

轻量级的docker环境管理UI

docker pull portainer/portainer-ce

docker run -d -p 9000:9000 -v /root/portainer:/data -v /var/run/docker.sock:/var/run/docker.sock --name dev-portainer portainer/portainer-ce

-d #容器在后台运行
-p 9000:9000 # 宿主机9000端口映射容器中的9000端口
-v /var/run/docker.sock:/var/run/docker.sock # 把宿主机的Docker守护进程(docker daemon)默认监听的Unix域套接字挂载到容器中
-v /root/portainer:/data # 把宿主机目录 /root/portainer 挂载到容器 /data 目录;
–name dev-portainer # 指定运行容器的名称

Portainer也支持docker集群管理,但一般也就单机学习之用,
正式环境一般用使用Rancher管理Docker集群

安装mysql

docker pull mysql:8

docker run -d -p 3306:3306 --name mysql8 -v ~/mysql/data:/var/lib/mysql -v ~/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=admin  mysql:8

#可选参数
--name           后面这个是生成的容器的名字mysql8
-p 3306:3306  表示这个容器中使用3306(第二个)映射到本机的端口号也为3306(第一个) 
-v  数据卷挂在,将主句目录与容器内目录同步
-e MYSQL_ROOT_PASSWORD=admin  初始化root用户的密码
-d                   表示使用守护进程运行,即服务挂在后台

#进入mysql,可以ps查出容器id进入,也可以用别名
docker exec -it qmm-mysql bash 
#登录
mysql -u root -p
#切换数据库
show databases;
use mysql;
#修改加密方式并开放远程连接
udate user set host='%' where user='root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

版权声明:本文为u012796085原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。