查找 Docker Hub 上的 nginx 鏡像php
runoob@runoob:~/nginx$ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 3260 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 674 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 207 [OK] million12/nginx-php Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS... 67 [OK] maxexcloo/nginx-php Docker framework container with Nginx and ... 57 [OK] ...
這裏咱們拉取官方的鏡像html
$ docker pull nginx:1.14
等待下載完成後,咱們就能夠在本地鏡像列表裏查到 REPOSITORY 爲 nginx 的鏡像。nginx
runoob@runoob:~/nginx$ docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 555bbd91e13c 3 days ago 182.8 MB
如下命令使用 NGINX 默認的配置來啓動一個 Nginx 容器實例:docker
$ docker run --name nginx-test -p 8081:80 -d nginx:1.14
nginx-test
容器名稱。-d
設置容器在在後臺一直運行。-p
端口進行映射,將本地 8081 端口映射到容器內部的 80 端口。執行以上命令會生成一串字符串,相似 6dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938,這個表示容器的 ID,通常可做爲日誌的文件名。vim
咱們能夠使用 docker ps 命令查看容器是否有在運行:瀏覽器
$ docker ps CONTAINER ID IMAGE ... PORTS NAMES 6dd4380ba708 nginx ... 0.0.0.0:8081->80/tcp nginx-test
PORTS 部分表示端口映射,本地的 8081 端口映射到容器內部的 80 端口。bash
在瀏覽器中打開 http://127.0.0.1:8081/,效果以下:tcp
首先,建立目錄 nginx, 用於存放後面的相關東西。php-fpm
$ mkdir -p /docker/nextcloud /docker/nginx /docker/certs /docker/nginx/log /docker /docker/nginx/conf
拷貝容器內 Nginx 默認配置文件到本地當前目錄下的 conf 目錄,容器 ID 能夠查看 docker ps 命令輸入中的第一列:測試
docker cp 6dd4380ba708:/etc/nginx/nginx.conf /docker/nginx
$ docker run -p 8082:80 --name nginx
-v /docker/nextcloud:/usr/share/nginx/html
-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf #nginx運行必須的文件
-v /docker/nginx/conf:/etc/nginx/conf.d
-v /docker/certs:/etc/certs
-v /docker/nginx/log:/var/log/nginx -d <ImageId>
命令說明:
-p 8082:80: 將容器的 80 端口映射到主機的 8082 端口。
--name nginx:將容器命名爲 nginx。
-v /docker/nextcloud:/usr/share/nginx/html:將容器的網站目錄掛載到咱們建立的 /docker/nextcloud。
-v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf:將容器的nginx.cconf文件掛載到咱們建立的 /docker/nginx/nginx.conf。
-v /docker/nginx/conf:/etc/nginx/conf.d:將容器的配置文件目錄掛載到咱們建立的 /docker/nginx/conf。
建立docker-nginx.yml
$ cd ~ $ vim docker-nginx.yml
複製如下命令後保存
version: '3' services: nginx: container_name: nginx hostname: nginx image: nginx:1.14 ports: - 80:80 - 443:443 networks: - cloud_net restart: always volumes: - /docker/nextcloud:/usr/share/nginx/html - /docker/nginx/nginx.conf:/etc/nginx/nginx.conf - /docker/nginx/conf:/etc/nginx/conf.d - /docker/certs:/etc/certs - /docker/nginx/log:/var/log/nginx
networks: cloud_net:
執行docker-nginx.yml
[root@localhost ~]# docker-compose up -d nginx Creating nginx ... done [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f38e2bba133b nginx:1.14 "nginx -g 'daemon of…" 4 seconds ago Up 4 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx
進入 ~/nginx/www 目錄:
$ cd /docker/nextcloud
建立 index.html 文件,內容以下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> </head> <body> <h1>個人第一個標題</h1> <p>個人第一個段落。</p> </body> </html>
輸出結果爲: