docker使用centos镜像,编译安装nginx,并上传镜像

1. 拉取镜像

[root@localhost ~]# docker pull centos

2. 运行centos容器

[root@localhost ~]# docker run --name centos01 -it centos

3. 安装依赖包

[root@a4f6f126ac72 /]# yum -y install make gcc gcc-c++ openssl-devel pcre zlib openssl gd-devel wget pcre-devel

4. 下载nginx的tar包

[root@a4f6f126ac72 /]# wget http://nginx.org/download/nginx-1.20.1.tar.gz

也可以使用下面的方法
// 将本地的包传到容器
[root@localhost ~]# docker cp /root/nginx-1.20.1.tar.gz a4f6f126ac72:/root  //包的位置加容器的id+容器目录  

5. 解压nginx的tar包

[root@a4f6f126ac72 ~]# tar xf nginx-1.20.1.tar.gz -C /usr/local/

6. 创建nginx用户

[root@a4f6f126ac72 local]# useradd -r -M -s /sbin/nologin nginx

7. 创建日志目录,并设置为nginx用户

[root@a4f6f126ac72 local]# mkdir -p /var/log/nginx
[root@a4f6f126ac72 local]# chown -R nginx.nginx /var/log/nginx/

8. 编译安装nginx

[root@a4f6f126ac72 nginx-1.20.1]# pwd
/usr/local/nginx-1.20.1

[root@a4f6f126ac72 local]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log

[root@a4f6f126ac72 local]# make && make install

9. 设置环境变量

[root@a4f6f126ac72 local]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@a4f6f126ac72 local]# source /etc/profile.d/nginx.sh

10. 启动nginx报错如下内容

nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决措施
[root@a4f6f126ac72 conf]# pwd
/usr/local/nginx/conf
[root@a4f6f126ac72 conf]# vim nginx.conf
 9 pid        /usr/local/nginx/logs/nginx.pid;
 
[root@a4f6f126ac72 conf]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf   //指定文件加载nginx配置文件

11. 将当前容器生成nginx镜像并上传

// 首先登录你的docker Hub

[root@localhost ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: dockerimages123   //dockerHub的账号
Password:   //密码
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

// 将容器打包成镜像

// a4f6f126ac72这个是容器的id,也可以写容器的名字,dockerimages123/nginx:v0.1这个是镜像的名字,名字只能写自己dockerHub的id加镜像名才可以上传
[root@localhost ~]# docker commit -c 'CMD ["/bin/bash","/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf"]' a4f6f126ac72 dockerimages123/nginx:v0.1
sha256:5395d21f1c7547d1b2cda98d7c2b7b346ca5c3b98b2e510ab6aa469d08977d0a

// 将镜像上传到dockerHub仓库

[root@localhost ~]# docker push dockerimages123/nginx:v0.1   //这个写你dockerHub的名字然后接镜像名

The push refers to repository [docker.io/dockerimages123/nginx]
ba052d369600: Pushed 
74ddd0ec08fa: Pushed 
v0.1: digest: sha256:17ae9261f7b59d1bbb1a61607b32b95ae59e631d5c046c7ae7d8198e22a0eb0c size: 742

// 退出账号的命令

[root@localhost ~]# docker logout
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值