Docker安装JAVA软件总结
一、安装JDK
docker pull openjdk:8 #拉取镜像
docker run -id --name=openjdk -p 8080:8080 openjdk:8 #创建容器
二、安装MySql
- 拉取镜像
# 查询中央仓库
docker search -f is-official=true mysql
# 从中央仓库下载
docker pull mysql:8.0.25
- 配置mysql挂载目录
mkdir -p /usr/local/mysql/data &&
mkdir -p /usr/local/mysql/logs &&
mkdir -p /usr/local/mysql/conf
创建mysql配置文件
在宿主机上创建mysql配置文件:/usr/local/mysql/conf/my.cnf
cat > /usr/local/mysql/conf/my.cnf << EOF
[mysqld]
character-set-server=UTF8MB4
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
wait_timeout=1814400
[mysql]
default-character-set=UTF8MB4
[client]
default-character-set=UTF8MB4
EOF
- 创建容器
# 创建并运行容器,docker 会自动创建 /usr/local/mysql/data 目录和mysql配置目录conf/my.cnf
docker run -id -p 3306:3306 \
--name=mysql \
--restart=always \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/logs:/var/log/mysql \
-v /usr/local/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.25
三、安装Tomcat
- 搜索tomcat镜像
docker search tomcat
- 拉取tomcat镜像
docker pull tomcat:8
- 创建容器,设置端口映射、目录映射
# 在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir -p /usr/local/tomcat
#创建容器
docker run -id --name=tomcat8 -p 8080:8080 -v /usr/local/tomcat:/usr/local/tomcat/webapps tomcat:8
或
#docker run -id --name=tomcat8 -p 8080:8080 -v $PWD:/usr/local/tomcat/webapps tomcat:8
参数说明:
- -p 8080:8080:将容器的8080端口映射到主机的8080端口 (第一个8080是宿主机端口用来和tomcat做映射的,第二个8080是容器启动tomcat端口8080,第二个端口是tomcat容器默认启动的端口)
- -v $PWD:/usr/local/tomcat/webapps:将主机中当前目录挂载到容器的webapps
- 使用外部机器访问tomcat
在宿主机目录/usr/tomcat下创建test目录。并在test目录下创建index.html。那么test目录会同步到tomcat8容器的 /usr/local/tomcat/webapps里面
在docker版的tomcat8中其webapps文件为空,其欢迎页都放在webapps.dist文件中
[root@localhost tomcat]# mkdir test
[root@localhost tomcat]# cd test/
[root@localhost test]# vim index.html #在index.html里面编写 <h1>hello tomcat</h1>
浏览器测试访问:
http://127.0.0.1:8080/test/index.html
四、安装NGINX
- 搜索nginx镜像
docker search nginx
- 拉取nginx镜像
docker pull nginx
创建目录
进入到/usr/local
mkdir -p /usr/local/nginx/conf.d &&
mkdir -p /usr/local/nginx/logs &&
mkdir -p /usr/local/nginx/html
编写nginx配置文件nginx.conf
/usr/local/nginx/conf.d/nginx.conf
cat > /usr/local/nginx/conf.d/nginx.conf << EOF
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html; #usr/share/nginx/html为docker中nginx的静态资源目录
index index.html index.htm;
}
}
EOF
上面安装jdk时端口号设为了80,这里端口号冲突了可设置为81,下面一样
说明:
第四步其实可以省略,默认创建一个nginx容器,会在/etc/nginx/目录下生成一个叫nginx.conf的配置文件,nginx容器启动会去加载该文件,该文件的内容和第四步配置文件的内容相同。这个文件的末尾有include /etc/nginx/conf.d/*.conf;这句话,也就说在conf.d目录下并且以conf结尾的文件都会被加载,而这个目录下只有一个配置文件就是default.conf,default.conf文件的内容配置了一个server节点,以及默认访问nginx的目录和首页(/html/index.html)
- 创建nginx容器、端口映射、目录挂载
docker run -id -p 80:80 \
--name=nginx \
--restart=always \
-v /usr/local/nginx/conf.d:/etc/nginx/conf.d \ #不挂载这个配置文件也是可以的
-v /usr/local/nginx/logs:/var/log/nginx \ #nginx容器默认的日志文件保存到/var/log/nginx目录下
-v /usr/local/nginx/html:/usr/share/nginx/html \ #nginx默认会去访问/usr/share/nginx/html下的index.html
nginx
docker run -id -p 80:80 \
--name=nginx \
--restart=always \
-v