Docker學習03 - 部署容器
阿新 • • 發佈:2021-10-26
Mysql部署
需求:
在Docker容器中部署,並在外部客戶端操作Mysql Server
步驟:
0 搜尋映象
1 拉去映象
2 建立容器
3 操作容器中的mysql
說明:
1 容器內的網路服務不能喝外部直接通訊。
2 外部機器可以直接訪問宿主機。
我們可以讓
3307埠對映到容器內部的3306,這操作叫做埠對映
埠對映格式:
docker run -.... -p {宿主機埠}:{容器埠} containername
部署命令:
docker pull mysql:5.6
#!/bin/bash Cur=$(cd $(dirname $0);pwd) docker_name="mysql" mysql_home=~/docker_share/mysql conf_path=$mysql_home/conf log_path=$mysql_home/logs data_dir=$mysql_home/data docker run -id -p 3307:3306 \ --name mysql \ -v $conf_path:/etc/mysql/conf.d \ -v $log_path:/logs \ -v $data_dir:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql
nginx部署
先獲取映象
docker pull nginx
執行:
nginx_root=~/docker_share/nginx
docker run --name=my_nginx -id \
-p 80:80 \
-v $nginx_root/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $nginx_root/logs:/var/logs/nginx \
-v $nginx_root/html:/usr/share/nginx/html \
nginx
配置nginx.conf
vim ~/docker_share/nginx/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; }
在~/docker_share/html中建立一個index.html,隨便填點啥:
<html>
<head>
<title>Zhaozijian's Index</title>
</head>
<body>
<h1>Welcome to zhaozijian's home</h1>
</body>
</html>
啟動後,在瀏覽器輸入
http://localhost
即可直接訪問
部署Redis
docker run -id --name=my_redis -p 6379:6379 redis