总体步骤
- 搜索镜像
- 拉取镜像
- 查看镜像
- 启动镜像
- 停止容器
- 移除容器
安装 tomcat
1、docker hub上面查找 tomcat 镜像
docker search tomcat
2、从 docker hub 上拉取 tomcat 镜像到本地
不指定版本时,拉取为:latest
docker pull tomcat
3、docker images 查看是否有拉取到的 tomcat
4、使用 tomcat 镜像创建容器(也叫运行镜像)
docker run -it -p 8080:8080 tomcat
说明:
-p 主机端口:docker容器端口
-P 随机分配端口
-it 交互终端
如果是随机分配终端,
安装 mysql
1、docker hub上面查找 mysql 镜像
docker search mysql
2、从docker hub上(阿里云加速器)拉取 mysql 镜像到本地标签为 5.6
拉取指定版本到本地
3、使用 mysql5.6 镜像创建容器(也叫运行镜像)
docker run -p 12345:3306 --name mysql
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d
-v /zzyyuse/mysql/logs:/logs
-v /zzyyuse/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.6
命令说明:
-p 12345:3306:将主机的12345端口映射到docker容器的3306端口。[一般使用软件默认的端口就行]
--name mysql:运行服务名字
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d :将主机/zzyyuse/mysql录下的conf/my.cnf 挂载到容器的 /etc/mysql/conf.d
-v /zzyyuse/mysql/logs:/logs:将主机/zzyyuse/mysql目录下的 logs 目录挂载到容器的 /logs。
-v /zzyyuse/mysql/data:/var/lib/mysql :将主机/zzyyuse/mysql目录下的data目录挂载到容器的 /var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
-d mysql:5.6 : 后台程序运行mysql5.6
进入容器
docker exec -it MySQL运行成功后的容器ID /bin/bash
4、外部 Win10 也来连接运行在 dokcer上的 mysql 服务
5、备份测试
docker exec myql服务容器ID sh -c ' exec mysqldump --all-databases -uroot -p"123456" ' > /zzyyuse/all-databases.sql
安装 redis
1、docker hub上面查找 redis 镜像
docker search redis
2、从docker hub上(阿里云加速器)拉取 redis 镜像到本地标签为 3.2
3、使用 redis 3.2 镜像创建容器(也叫运行镜像)
注意这里主机下面 redis.conf 是一层目录
docker run -p 6379:6379 -v /xj0927/myredis/data:/data -v /xj0927/myredis/conf:/usr/local/etc/redis/redis.conf -d redis:5.0 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
4、测试 redis-cli 连接上来
docker exec -it 运行着Rediis服务的容器ID redis-cli
5、测试持久化文件生成
Nginx 部署
1、搜索 nginx 镜像
docker search nginx
2、拉取 nginx 镜像
docker pull nginx
3、创建容器,设置目录映射
mkdir nginx
cd nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on; keepalive_timeout 65;
#gzip on;
# 后面需要应用的端口文件都放在conf.d下面
include /etc/nginx/conf.d/*.conf;
}
4、运行镜像
当前目录:nginx
docker run -id --name=nginx \
-p 80:80 \
-p 81:81 \
-p 82:82 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/conf.d:/etc/nginx/conf.d \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
参数说明:
- -p 80:80: 将容器的80端口映射到宿主机的 80 端口
- -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf: 将主机当前目录下的 /conf/nginx.conf 挂载到容 器的 :/etc/nginx/nginx.conf [配置目录 ]
- -v $PWD/logs:/var/log/nginx: 将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx [ 日志目录]
- -v $PWD/conf.d:/etc/nginx/conf.d : [应用目录]
- -v $PWD/html:/usr/share/nginx/html : [静态资源目录]
5、端口映射
路径:nginx/conf.d/80.conf
server {
listen 80; # 监听的端口
server_name localhost; # 域名或ip
location / { # 访问路径配置
root /usr/share/nginx/html;# 根目录
index index.html index.htm; # 默认首页
}
error_page 500 502 503 504 /50x.html; # 错误页面
location = /50x.html {
root html;
}
}
6、静态页面
在 主机的 html 目录下新增 index.html
<h1>hello docker nginx</h1>
7、测试
访问:192.168.77.138