使用docker-compose部署nginx


1、新建docker-compose.yml文件,文件的基本模板如下:(由於yml格式比較嚴格,注意空格縮進)


version: '2.0' services: nginx: restart: always image: nginx:1.11.6-alpine ports: - 8080:80 - 80:80 - 443:443 volumes: - ./conf.d:/etc/nginx/conf.d - ./log:/var/log/nginx - ./www:/var/www - /etc/letsencrypt:/etc/letsencrypt 

參數說明:

  • version:版本號,好像我這上面2和2.0有區別,不能寫成2,寫成2的話,docker-compose up -d 時會報錯,提示版本號要寫成2.0的樣子,不過有的地方我看着直接寫成2也是可以的,可能是我的docker-compose版本不一致。
  • service:就是要定義的docker容器
  • nginx:容器的名稱
  • restart:設置為always,表明此容器應該在停止的情況下總是重啟,比如,服務器啟動時,這個容器就跟着啟動,不用手動啟動,服務器啟動之后,進入到docker-compose.yml文件路徑下,執行docker-compose ps可以看到,該容器正在運行。
  • image:這個是需要依賴的容器,也就是nginx軟件,可以到docker官方鏡像上找到最新版的鏡像。
  • ports:這個是容器自己運行的端口號和需要暴露的端口號。比如: - 8080:80,表示容器內運行着的端口是80,把端口暴露給8080端口,從外面訪問的是8080端口,就能自動映射到80端口上。
  • volumes:這個是數據卷。表示數據、配置文件等存放的位置。(- . 這個表示docker-compose.yml當前目錄位置開始創建這個文件)

2、運行構建鏡像。

如果配置文件沒有出錯,執行如下命令(在docker-compose.yml當前目錄)

[root@rainbow nginx]# docker-compose up -d Creating nginx_nginx_1 ... Creating nginx_nginx_1 ... done 
  • 由於之前我構建過,所以它只是重新啟動,沒有構建。如果第一次構建,可能速度有點慢。

3、查看容器運行狀態

[root@rainbow nginx]# docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------- nginx_nginx_1 nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:8086->80/tcp [root@rainbow nginx]# 
  • 從State可以看出,此容器正在運行,狀態為UP,Ports上可以看出,容器運行着的端口和暴露的端口。

4、啟動、停止容器

[root@rainbow nginx]# docker-compose stop Stopping nginx_nginx_1 ... done [root@rainbow nginx]# 
  • 說明:docker-compose stop,如果沒有指定容器,則會把docker-compose.yml文件中配置的所有容器停止。如果只想停止某個容器,則需要指定容器名。使用docker-compose ps列出所有容器:
[root@rainbow nginx]# docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------- nginx_nginx_1 nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:8086->80/tcp [root@rainbow nginx]# 
  • 看得出,容器名為nginx,注意,是nginx,不是nginx_nginx_1。然后就可以停止容器了。
[root@rainbow nginx]# docker-compose stop nginx Stopping nginx_nginx_1 ... done [root@rainbow nginx]# 
  • 查看狀態
[root@rainbow nginx]# docker-compose ps Name Command State Ports ----------------------------------------------------- nginx_nginx_1 nginx -g daemon off; Exit 0 [root@rainbow nginx]# 
  • 可以看得出,容器已經停止。

5、刪除容器

如果不需要這個容器或者容器運行中需要重新構建,則可以刪除這個容器。

[root@rainbow nginx]# docker-compose rm nginx Going to remove nginx_nginx_1 Are you sure? [yN] y Removing nginx_nginx_1 ... done [root@rainbow nginx]# 
  • 刪除之后,重新使用docker-compose up -d構建即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM