Docker容器简单部署nginx过程解析

 更新时间:2021年08月30日 11:34:36   作者:wx5cc19525285e2  
这篇文章主要介绍了Docker容器简单部署nginx过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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日常使用的实用小技巧总结(推荐)

    docker日常使用的实用小技巧总结(推荐)

    docker是持续构建应用交付的一大利器也,但是要使工具发挥最大的功效还需要知道一些小技巧。下面这篇文章给大家主要总结介绍了关于docker日常使用的一些实用小技巧,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴。
    2017-09-09
  • docker在windows创建卷后本地找不到的完美解决方法

    docker在windows创建卷后本地找不到的完美解决方法

    这篇文章主要介绍了docker在windows创建卷后本地找不到的完美解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-02-02
  • 详解使用Docker快速部署ELK环境(最新5.5.1版本)

    详解使用Docker快速部署ELK环境(最新5.5.1版本)

    这篇文章主要介绍了详解使用Docker快速部署ELK环境(最新5.5.1版本),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 在docker中开启sshd操作

    在docker中开启sshd操作

    这篇文章主要介绍了在docker中开启sshd操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Dockerfile中常用命令汇总

    Dockerfile中常用命令汇总

    本文给大家列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档。希望大家能够喜欢
    2018-11-11
  • docker中配置hosts的方法实现

    docker中配置hosts的方法实现

    本文主要介绍了docker中配置hosts的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Docker中 container 和 image 的命名

    Docker中 container 和 image 的命名

    这篇文章主要介绍了Docker中container和image的命名,文章基于Docker的相关资料展开对container和image的命名介绍,需要的小伙伴可以参考一下
    2022-04-04
  • docker磁盘空间不足的解决办法

    docker磁盘空间不足的解决办法

    linux的磁盘空间挂载后,需要迁移一下docker 镜像原本的位置,因此有此实践,分享操作过程,文章通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • docker remote api一键TLS加密的实现

    docker remote api一键TLS加密的实现

    本文主要介绍了docker remote api一键TLS加密的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 如何快速通过Docker安装SQL Server

    如何快速通过Docker安装SQL Server

    要用到sqlserver环境测试,用docker部署比较快,下面这篇文章主要给大家介绍了关于如何快速通过Docker安装SQL Server的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05

最新评论