1. 程式人生 > >Linux運維之docker虛擬化部署nginx

Linux運維之docker虛擬化部署nginx

pre 完全 uname bin fire 17. details label auto

一、Docker的概念

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

二、Docker的安裝環境

1.檢查內核版本

# uname -r 查看當前linux得版本信息

Docker要求CentOS7最低內核版本為3.1版本

2. 關閉防火墻和selinux

# systemctl stop firewalld

# setenforce 0

3、解決docker容器啟動出現Networking will not work.

vim /usr/lib/sysctl.d/00-system.conf

  添加代碼

  net.ipv4.ip_forward=1

如果沒有這一步,啟動docker容器時,會出現

WARNING: IPv4 forwarding is disabled. Networking will not work.

三、Docker的安裝

# yum install docker -y

# yum install docker-devel -y  (可選)

# systemctl start docker 開啟docker服務

# ps aux | grep docker 查看docker服務 ==》ps -ef | grep docker

三、Docker的內部安裝nginx

[root@localhost ~]# docker search nginx  # 搜索nginx的鏡像文件
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/nginx Official build of Nginx. 7835 [OK]


docker.io docker.io/jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1251 [OK]
docker.io docker.io/richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 507 [OK]
docker.io docker.io/jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container to use with nginx as... 292 [OK]
...............................................................默認選擇第一個...........................................................................

[root@localhost ~]# docker pull docker.io/nginx  下載nginx鏡像

[root@localhost ~]# docker images  # 查看下載的鏡像文件
REPOSITORY    TAG     IMAGE ID       CREATED        SIZE
docker.io/nginx   latest       3f8a4339aadd     5 weeks ago         108.5 MB

# docker tag 3f8a4339aadd nginx:111 修改鏡像名字(可選)

註意:請先確保80端口沒有被占用。netstat-lntup|grep80

[root@localhost ~]# docker run -ti -d -p 80:80 docker.io/nginx /bin/bash   # 運行nginx容器
WARNING: IPv4 forwarding is disabled. Networking will not work.
bc134155f262031505cebd2978db3a35049d39f4c289711f5b3d89ced5e9497c

技術分享圖片

[root@localhost ~]# docker ps  # 查看運行中的容器
技術分享圖片

四、Docker的內部啟動nginx

[root@localhost ~]# docker exec -ti bc134155f262 /bin/bash   # 進入nginx容器內容
root@bc134155f262:/# /usr/sbin/nginx           # 啟動nginx

root@bc134155f262:/#    # 這個提示說明已經進入容器內部了

打開一個新的窗口

技術分享圖片

[root@localhost ~]# curl 192.168.40.23

[root@localhost ~]# curl 172.17.0.1

[root@localhost ~]# curl 172.17.0.2

  能在本地訪問到nginx

技術分享圖片

五、Docker的命令總結

docker search 鏡像名  # 搜索是否有相應的鏡像
# 下載鏡像文件
docker pull docker鏡像名

# 查看下載的鏡像
docker images  

# 查看運行中的容器 docker ps # 查看所有容器 docker ps -a # 退出容器 按Ctrl+D 即可退出當前容器【但退出後會停止容器】 # 退出不停止容器: 組合鍵:Ctrl+P+Q # 啟動容器 docker start 容器名或ID
docker run -ti -d -p 80:80 docker.io/nginx /bin/bash    # 針對有端口的nginx,並把命令添加至環境變量

docker pull hub.c.163.com/public/centos:7.0

docker run --name mydocker -t -i -p 80:80 hub.c.163.com/public/centos /bin/bash

# 進入容器
docker attach 容器名或ID
docker exec -ti bc134155f262 /bin/bash # 停止容器 docker stop 容器名或ID # 刪除全部容器--慎用 docker stop $(docker ps -q) & docker rm $(docker ps -aq)
docker rmi 容器名 #保存容器,生成鏡像 docker commit 容器ID 鏡像名稱

# docker容器中查看容器Linux版本
cat /etc/issue

# 將文件復制到docker內部容器
docker cp xxx.txt docker容器名或id:/xxx/xxx/xxxx

# docker日誌
journalctl -u docker.service

 原文出處 http://blog.csdn.net/u011704394/article/details/54341402

Linux運維之docker虛擬化部署nginx