Linux運維之docker虛擬化部署nginx
一、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