一、Docker安装MySQL
1.拉取MySQL镜像
docker pull mysql //拉取最新版本的MySQL
docker pull mysql:latest //拉取最新版本的MySQL
docker pull mysql:xxx //拉取指定版本的MySQL
2.创建MySQL容器
# --privileged=true 加权限 --restart=always 自启动
docker run --privileged=true --restart=always -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
二、Docker安装Tomcat
1.拉取Tomcat镜像
docker pull tomcat //拉取最新版本的tomcat
docker pull tomcat:latest //拉取最新版本的tomcat
docker pull tomcat:xxx //拉取指定版本的tomcat
2.创建Tomcat容器
# --privileged=true 加权限 --restart=always 自启动
docker run -d -p 8080:8080 --privileged=true --restart=always --name tomcat tomcat:latest
三、Docker安装Nginx
docker images 查看docker的所有镜像
1.拉取Nginx镜像
docker pull nginx //拉取最新版本的nginx
docker pull nginx:latest //拉取最新版本的nginx
docker pull nginx:xxx //拉取指定版本的nginx
启动前需要先创建Nginx外部挂载的配置文件( /home/nginx/conf/nginx.conf)
之所以要先创建 , 是因为Nginx本身容器只存在/etc/nginx 目录 , 本身就不创建 nginx.conf 文件
当服务器和容器都不存在 nginx.conf 文件时, 执行启动命令的时候 docker会将nginx.conf 作为目录创建 ,nginx.conf应作为配置文件,所以这并不是我们想要的结果 。
2.创建挂载目录
# 创建挂载目录
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html
# 生成容器
docker run --name nginx -p 9001:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/nginx/
3.删除刚才创建的nginx容器
#先关闭容器再删除
docker ps -a 找到nginx对应的容器id
docker stop nginx/nginxid 关闭该容器
docker rm nginx/nginxid 删除该容器
#或者直接强制删除正在运行的nginx容器
docker rm -f nginx
4.创建nginx容器
docker run -p 80:80 --privileged=true --restart=always --name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
#单行命令版
docker run -p 80:80 --privileged=true --restart=always --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx:latest
-p 9001:80 | 将容器的80端口映射到宿主机的9001端口,然后通过9001端口就能访问到该容器 |
- -privileged=true | 加权限 |
- -restart=always | 容器自启 |
- -name nginx | 容器名 |
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ | 挂载nginx.conf配置文件 |
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \ | 挂载nginx配置文件 |
-v /home/nginx/log:/var/log/nginx \ | 挂载nginx.conf日志文件 |
-v /home/nginx/html:/usr/share/nginx/html \ | 挂载nginx内容 |
-d | 后台运行 |
nginx:latest | 本地运行的版本 |