docker相关执行环境的部署无非分成以下4步
- 搜索相关应用镜像
- 拉取相关应用镜像
- 创建容器
- 测试访问
docker run 参数
- -i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
- -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
- -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
- –name:为创建的容器命名。
====================================================================
部署Mysql
1)搜索mysql镜像 docker search mysql
2)拉取mysql镜像 docker pull mysql:5.6
3)创建容器,设置端口映射、目录映射(在/root目录下创建mysql目录用于存储mysql数据信息)
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
参数说明:
- -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
- -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
- -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
- -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
- -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
- $PWD:表示当前目录(/root/mysql)
4)进入容器,操作mysql docker exec -it c_mysql /bin/bash
并登录Mysql
也可通过外部机器进行连接Mysql
====================================================================
部署Tomcat
1)搜索tomcat镜像 docker search tomcat
2)拉取tomcat镜像 docker pull tomcat
3)创建容器,设置端口映射,目录映射(在root目录下创建tomcat目录用于存储数据信息)
- 在root目录下创建tomcat目录用于存储数据信息
mkdir tomcat
- 进入到tomcat目录中
cd tomcat
- 创建容器 (-p 8080:8080:将容器的8080端口映射到主机的8080端口,-v $PWD:/usr/local/tomcat/webapps:将主机中当前目录挂载到容器的webapps)
tomcatdocker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
4)先在/root/tomcat中创建一个文件夹并在里面创建一个网页用于外部机器进行访问tomcat
如果显示连接失败,说明tomcat未开启,则使用 docker start c_tomcat
开启tomcat
====================================================================
部署Nginx
1)搜索Nginx镜像 docker search nginx
2)拉取Nginx镜像 docker pull nginx
3) 创建容器,设置端口映射、目录映射
- 同样在/root目录下创建Nginx目录用于存储nginx数据信息
mkdir nginx
,并进入nginx目录中再创建一个conf目录mkdir conf
,同样进入conf目录中 - 在conf目录中创建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] "$request" '
'$status $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;
include /etc/nginx/conf.d/*.conf;
}
- 在/root/nginx中使用以下命令创建容器
docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-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/html:/usr/share/nginx/html:要访问资源的目录
4)使用外部机器进行访问nginx
====================================================================
部署Redis
1)搜索redis镜像 docker search redis
2)拉取redis镜像 docker pull redis
3)创建容器,设置端口映射 docker run -id --name=c_redis -p 6379:6379 redis:5.0
4)使用外部机器进行连接redis ./redis-cli.exe -h 192.168.88.129 -p 6379
====================================================================