docker運行nginx鏡像教程及命令


前言

  先提醒一下最容易忘記的,確保使用的防火牆端口已開啟

  需要實現的功能:

  • 使用docker啟動nginx服務
  • docker開機自啟動
  • nginx服務開機自啟動

  這樣就不用因為服務器掛掉每次都手動重啟服務了

 

環境

  服務器:目前使用的是三·豐·雲免費雲服務器(另外有免費虛擬主機,免備案服務),前面在服務器上試着跑了一個nignx和兩個node服務,訪問基本沒啥壓力,1G的內存還是夠夠的,當然,如果是線上項目需要,像搭建博客,個人覺得2G的內存會更合適一點。

  容器:docker

  鏡像:nginx

 

安裝docker

curl -sSL https://get.daocloud.io/docker | sh

 

運行docker

systemctl start docker

如果不運行docker,直接執行后面的操作會報錯:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

 

設置開啟啟動docker;不然每次重啟主機還得手動運行docker

systemctl enable docker

參數:

  enable:自啟動; disable:禁止自啟動

 

拉取nignx鏡像

docker pull nginx

 

查看本地鏡像

[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c919045c4c2b 42 hours ago 141MB

 

 

運行鏡像

docker run --name nginx-test -p 8003:80 -d nginx

參數說明:

  • --name nginx-test:容器名稱。
  • -p 8003:80: 端口進行映射,將本地 8003 端口映射到容器內部的 80 端口。
  • -d nginx: 設置容器在在后台一直運行。

 

訪問nginx

 

 

踩坑:如果發現訪問不到,頁面一直打不開,可以排除以下原因

  1. 防火牆端口是否開啟

常用命令:

查看防火牆開啟的端口命令:

firewall-cmd --list-ports

開啟端口8003(還需執行下面重啟命令才能生效) 

firewall-cmd --zone=public --add-port=8003/tcp --permanent

重啟

firewall-cmd --reload 

  2. nginx配置是否正確,一般不用配置,默認80端口可以直接訪問

 

 

查看容器

docker ps -a

-a可以查看所有容器,去掉-a只顯示正在運行的容器

 

刪除容器:需要指定container ID<容器 ID>

docker rm -f 1e560fca3906

 

停止容器

docker stop <容器 ID>

 

啟動停止的容器

docker start <容器 ID>

 

啟動並進入容器

docker run -it nginx /bin/bash

參數說明:

  • -i: 交互式操作。
  • -t: 終端。
  • nginx: nginx 鏡像。
  • /bin/bash:放在鏡像名后的是命令,這里我們希望有個交互式 Shell,因此用的是 /bin/bash。

exit退出容器會停止運行

 

進入已運行的容器

docker exec -it <容器 ID> /bin/bash
推薦使用:docker exec進入容器,使用exit退出容器不會停止; docker attach <容器 ID>進入容器,使用exit退出容器會停止

 

退出容器

exit

 

設置容器開機自動重啟(需要重啟docker才能生效哦

// 啟動容器
docker run --restart=always --name nginx-test -p 8003:80 -d nginx
systemctl restart docker
或者
// 更新已啟動的容器
docker container update --restart=always <容器ID>
systemctl restart docker


最后:容器自啟動遇到一個小坑,設置了
--restart=always,但是重啟服務器之后,發現docker並沒有自啟動nginx服務,最后才發現是需要手動重啟下docker。
 
       


免責聲明!

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



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