docker 参数说明
- run 运行镜像,将创建容器
- exec 运行容器(交互式)
- start/stop/restart 启动/停止/重启容器
- ps 查看运行中的容器
- ps -a 查看全部容器
- -d, –detach 在后台运行容器,并且打印容器id。
- -i, –interactive 即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用。
- -t, –tty 分配一个伪tty,一般与 -i 连用。
docker run 参数说明
更多参数说明见官网
- -v 宿主机文件夹:容器文件夹 目录挂载,使用绝对路径。限制挂载文件夹在容器中只读,加 :ro
- –name 容器名
- -p 宿主机端口:容器端口 端口映射
- –link
- 最后一个参数为镜像名
1、下载镜像
1 2 3
| docker pull php:fpm docker pull mysql docker pull nginx
|
2、准备
创建本地数据相关目录
1 2 3
| mkdir -p ~/docker-npm-test/www mkdir -p ~/docker-npm-test/mysql mkdir -p ~/docker-npm-test/conf.d/nginx
|
创建容器网络
1
| docker network create dev
|
MySQL
1 2 3 4 5 6
| docker run -itd --name mysql-test \ --network dev --network-alias mysql \ -v ~/docker-npm-test/mysql:/var/lib/mysql \ -p 3307:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql
|
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| docker run --name php-fpm-test -d \ --network dev --network-alias phpfpm \ -v ~/docker-npm-test/www:/www \ php:fpm
apt update
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype-dev librust-onig-dev docker-php-source extract cd /usr/src/php/ext/gd docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2/ docker-php-ext-install gd docker-php-ext-install pdo pdo_mysql
docker-php-ext-enable mbstring pecl install redis && docker-php-ext-enable redis pecl install swoole && docker-php-ext-enable swoole
|
-v ~/docker-npm-test/www:/www
是将主机中的 ~/docker-npm-test/html 目录挂载到容器中的 /www 目录
nginx
本机创建配置文件
~/docker-npm-test/conf.d/nginx/nginx-test.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass phpfpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; } }
|
创建 nginx 容器
1 2 3 4 5
| docker run --name nginx-test -p 8083:80 -d \ --network dev --network-alias nginx \ -v ~/docker-npm-test/www:/usr/share/nginx/html:ro \ -v ~/docker-npm-test/conf.d/nginx:/etc/nginx/conf.d:ro \ nginx
|