docker创建自己的镜像并配置nginx

前言

最近在研究docker,记录一下如何创建一个属于自己的镜像

本次使用linux版本为centos7.4(centos6也可以使用docker,只不过有部分功能只有7才有)

本次创建的镜像为centos系统中搭建nginx

一、统一环境

系统版本

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

内核版本

[[email protected] ~]# uname -r
3.10.0-693.2.2.el7.x86_64

selinux关闭

[[email protected] ~]# getenforce
Disabled

关闭防火墙

[[email protected] ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

配置yum源(这里可以保留自己需要的yum源,自己视情况而定)

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# rm -rf *
[[email protected] yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[[email protected] yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

二、开始安装并配置docker

下载并设置开机自启

[[email protected] ~]# yum install -y docker
[[email protected] ~]# systemctl enable docker.service

修改docker镜像源(默认使用国外的,改为国内阿里,速度会提升不少)

有两种方法,效果相同,在这里共同展示

方法一:

vim /usr/lib/systemd/system/docker.service(默认配置文件)
[service]
...............
ExecStart=/usr/bin/dockerd-current --registry-mirror=阿里云镜像加速地址 找到对应行,添加镜像加速器

方法二:

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-‘EOF‘
{
  "registry-mirrors": ["阿里云镜像加速地址"]
}
EOF
systemctl daemon-reload
systemctl restart docker

此方法为阿里云官方提供

三、启动docker并查看其状态

重新加载docker参数

[[email protected] ~]# systemctl daemon-reload

启动docker并查看状态

[[email protected] ~]# systemctl start docker
[[email protected] ~]# systemctl status docker

四、下载官方系统centos镜像并查看

[[email protected] ~]# docker pull centos
[[email protected] yum.repos.d]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              49f7960eb7e4        6 weeks ago         200 MB

五、开始镜像制作

启动并进入到镜像中

[[email protected] ~]# docker run -it --name mynginx centos /bin/bash[[email protected] /]#

镜像定制化(进入之后的操作就跟正常在centos中操作是一样的)

[[email protected] /]# yum install -y wget   #默认没有get所以需要安装
#与之前环境统一一样的操作
[[email protected] /]# cd /etc/yum.repos.d
[[email protected] yum.repos.d]# rm -f *
[[email protected] yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[[email protected] yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

开始安装nginx

[[email protected] ~]# yum install -y nginx #默认的网络连接方式是可以连接外网的
[[email protected] ~]# vim /etc/nginx/nginx.conf #修改参数
找到user nginx;,在他下面加上一行 daemon off;(禁止后台运行,docker不允许nginx后台运行)
[[email protected] ~]# nginx -t    #检查nginx配置文件语法
[[email protected] ~]# nginx    #启动ngin

检查结果

正常在nginx命令运行后,界面是夯住的,所以另外打开一个ssh渠道执行
[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
860e2e2f3d93        centos              "/bin/bash"         3 minutes ago       Up 3 minutes                            mynginx

这样的结果证明是没问题的

六、提交镜像并查看

[[email protected] ~]# docker commit -m "add new nginx docker images" mynginx murry/nginx:v1
[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
murry/nginx         v1                  b96902fb932a        25 hours ago        397 MB
docker.io/centos    latest              49f7960eb7e4        6 weeks ago         200 MB

到这里,自己的镜像就已经提交到本地

七、测试nginx

运行自己的镜像

docker run -p 80:80 --name web_nginx b96902fb932a nginx  #-p表示端口映射,后面那一串字符代表镜像id

浏览器访问服务器IP地址

出现此界面证明nginx配置成功

八、上传到自己的docker hub中

如果小伙伴想要把自己辛辛苦苦做出来的镜像上传到docker hub可以自己先创建一个自己的docker id

在服务器上

[[email protected] ~]# 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 : murry
Password:
Login Succeeded

登陆成功后

[[email protected] ~]# docker tag 镜像ID docker.io/用户名/镜像名
[[email protected] ~]# docker push docker.io/用户名/镜像名

这样就可以在docker hub官网上看到自己的作品啦

番外:本篇博客部分技术支持来自我的一位好友:http://www.cnblogs.com/zhangzhifan1208/

其中记录不少炫酷的知识,欢迎大家查阅

原文地址:https://www.cnblogs.com/murry/p/9332747.html

时间: 2024-10-29 07:14:26

docker创建自己的镜像并配置nginx的相关文章

云计算:Docker安装及本地镜像仓库配置

# **Docker的安装及如何配置从国内镜像中拖取需要的images到本地使用** 实验环境: OS:CentOS7.0 -X64 上网环境:通过代理服务器上网 1.首先下载docker安装包docker-engine-1.7.1-1.el7.centos.x86_64.rpm 安装包下载地址: https://get.docker.com/rpm/1.7.1/centos-7/RPMS/x86_64/docker-engine-1.7.1-1.el7.centos.x86_64.rpm [[

docker 创建自己的镜像仓库

[email protected]:/home/yindongzi# docker run -d -p 5001:5000 -v /usr/local/registry:/var/lib/registry --restart=always --name registry registry:2 97469284c8d735919f78e225c1c78a8d8aa714fa878c308e03e40d4fdacc0d03 [email protected]:/home/yindongzi# cur

Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离

Docker的安装 一.Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 二.安装Docker 1.检查内核版本 # uname -r      查看当前linux得版本信息 Docker要求CentOS7最低内核版本为3.1版本 2. 关闭防火墙和selinux # systemctl stop firewalld #

docker完整配置nginx+php+mysql

首先了解一个方法: 使用docker exec进入Docker容器 docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用: sudo docker exec --help 接下来我们使用该命令进入一个已经在运行的容器 $ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash 一. 配置nginx 查找 Docker Hub 上的 nginx 镜像 runo

docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker version 查看docker的版本号 */ 1.2 docker的启动,停止,重启,查看状态. // service docker start/stop/restart/status 二.镜像命令? 1. 列举出所有的镜像(本地镜像) /* docker images 所拥有的参数: dock

转:Docker创建centos的LNMP镜像

转自:http://www.vckai.com/p/29  1. 安装docker 这个就不说了,不会的可以看下我之前的文章<Docker介绍及安装>. 1)启动docker # service docker start 2. 下载docker镜像 官网docker镜像网站:https://www.docker.com/,可以在这里查看官网或者第三方的docker镜像.当然如果没有VPN,网络比较慢的情况下,可以考虑使用:https://docker.cn/,这是一个国内的镜像网站. 1)下载

docker学习之二镜像创建

继上一篇docker入门之后写一点使用的经验. 通过命令:docker run -it REPOSITORY或IMAGE ID   注:-it后面跟的字段可以通过下面指令获得 创建运行的容器,会进入一个伪终端,如果使用ctrl+D或者使用exist命令来退出伪终端,会造成容器也终止运行.正确推出伪终端的姿势是:ctrl+P之后再按ctrl+q   这样就能把伪终端与容器分离了. Ps:到现在为止可以自己粗略自己发现一些命令了,使用docker --help可以查看到一些命令.其中attach的功

Docker创建centos的LNMP镜像

前段时间重装了系统,今天刚好有时间,就用docker安装一个lnmp开发环境,下面是我的安装笔记. 1. 安装docker 这个就不说了,不会的可以看下我之前的文章<Docker介绍及安装>. 1)启动docker # service docker start 2. 下载docker镜像 官网docker镜像网站:https://www.docker.com/,可以在这里查看官网或者第三方的docker镜像.当然如果没有VPN,网络比较慢的情况下,可以考虑使用:https://docker.c

docker 创建私有镜像仓库

docker 创建私有镜像仓库1创建配置文件 {"insecure-registries":["192.168.1.10:5000"] //本地仓库地址}2.重启动docker服务systemctl restart docker3.启动私有仓库docker run -d -p 5000:5000 registry:latest4.上传镜像到私有仓库给镜像打标签后上传 docker tag nginx:latest 192.168.1.10:5000/nginx:la