码迷,mamicode.com
首页 > 其他好文 > 详细

Docker容器简单部署nginx

时间:2020-07-24 23:48:44      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:下载   open   进入   res   cal   ant   pcr   密码   sbin   

1、容器中部署nginx服务

centos:7镜像运行一个容器,并且,在这个容器内部署Nginx服务。

[root@Docker ~]# docker pull centos:7        //下载镜像
[root@Docker ~]# docker run -itd --name webapp --restart=always centos:7  //运行一个容器名为:webapp
[root@Docker ~]# docker cp nginx-1.16.0.tar.gz  webapp:/root         //将本地nginx包导入webapp容器内
[root@Docker ~]# docker exec -it webapp  /bin/bash         //进入容器
[root@85099880dabe ~]# tar zxf nginx-1.16.0.tar.gz 
[root@85099880dabe ~]# cd nginx-1.16.0 
[root@85099880dabe nginx-1.16.0]# yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel //下载相关依赖包
[root@85099880dabe nginx-1.16.0]# useradd -M -s /sbin/nologin nginx  //添加一个没有登录权限的nginx用户
[root@85099880dabe nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx  //编译安装

技术图片

[root@85099880dabe nginx-1.16.0]# make && make install      //编译安装
[root@85099880dabe nginx-1.16.0]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/   //创建软链接
[root@85099880dabe nginx-1.16.0]# nginx 
[root@85099880dabe nginx-1.16.0]# nginx    //确认nginx服务开启
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
[root@85099880dabe nginx-1.16.0]# cd /usr/local/nginx/html/ 
[root@85099880dabe html]# echo "TEST WEB" > index.html 
[root@85099880dabe html]# curl  127.0.0.1 
TEST WEB

2、迁移镜像

所需环境:
docker1主机:192.168.45.129
docker2主机:192.168.45.134

1)docker1主机

将docker1的刚刚创建的容器并制作成镜像导入docker2主机上
[root@Docker ~]# docker commit webapp  myweb     //将webapp容器制作成镜像名为myweb
sha256:b035b8e8a36140e1bdbda9cf3a736b139ea8a48db7871a10f509b8f34d4c0f82  
[root@Docker ~]# docker save  > myweb.tar myweb:latest  //将镜像导出
[root@Docker ~]# scp myweb.tar  192.168.45.134:/root    //将镜像导出的tar包cp给docker2主机
The authenticity of host ‘192.168.45.134 (192.168.45.134)‘ can‘t be established.
ECDSA key fingerprint is d7:77:71:90:34:25:c0:ec:e0:b6:5c:cc:6b:44:93:7b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.45.134‘ (ECDSA) to the list of known hosts.
root@192.168.45.134‘s password:    //密码为docker2主机的密码
myweb.tar                                                                                                     100%  353MB 176.4MB/s   00:02   

2)docker2主机

[root@Docker2 ~]# docker load  < myweb.tar    //将刚刚cp过来的tar包制作成镜像
[root@Docker2 ~]# docker run -itd --name newweb myweb:latest   //启动一个容器
[root@Docker2 ~]# docker exec -it newweb /bin/bash  //进入容器
[root@4e419b580248 /]# nginx  
[root@4e419b580248 /]# nginx  //确定已启动nginx服务
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[root@4e419b580248 /]# curl  127.0.0.1
TEST WEB

注:这里我们可以看见在docker1主机容器中搭建的简单nginx环境并制作成镜像成功的迁移到了docker2主机上了

Docker容器简单部署nginx

标签:下载   open   进入   res   cal   ant   pcr   密码   sbin   

原文地址:https://blog.51cto.com/14306186/2513103

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!