首页 > 其他分享 >docker镜像与制作

docker镜像与制作

时间:2022-09-24 22:34:49浏览次数:53  
标签:10.0 root 0.119 nginx yum 镜像 docker 制作

Docker镜像概念

镜像是没有内核的,与宿主机公用一个内核 
为什么没有内核? 
  由于容器启动和运行过程中是直接使用了宿主机的内核,所以没有直接调用过
物理硬件,所以也不会涉及到硬件驱动,因此也用不上内核和驱动,另外有内核
的那是虚拟机。

验证镜像没有内核
[[email protected] ~]# docker ps -a 
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS                  PORTS     NAMES
765452196b77   nginx:latest   "/docker-entrypoint.…"   2 days ago   Exited (0) 2 days ago             nginx-test
[[email protected] ~]# docker start 765452196b77
765452196b77
[[email protected] ~]# 
[[email protected] ~]# docker ps 
CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS         PORTS                               NAMES
765452196b77   nginx:latest   "/docker-entrypoint.…"   2 days ago   Up 2 seconds   0.0.0.0:81->80/tcp, :::81->80/tcp   nginx-test
[[email protected] ~]# 
[[email protected] ~]# docker exec  -it 765452196b77 /bin/bash
root@765452196b77:/# ls /boot
root@765452196b77:/boot# ls 
root@765452196b77:/boot# exit 

docker运行nginx为什么要添加daemon of;
docker 容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果docker 容器pid挂了,那么docker容器便会直接退出。

制作Nginx镜像
1、先下载centos镜像

[[email protected] ~]# docker pull centos:7
[[email protected] ~]# docker image ls 
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    605c77e624dd   8 months ago    141MB
centos       7         eeb6ee3f44bd   12 months ago   204MB  #pull下的centos7镜像
centos       latest    5d0da3dc9764   12 months ago   231MB

2、基于镜像启动centos7容器

[[email protected] ~]# docker run -d    -it     centos:7  
66fb85930b0b10a81d334138b272ab87b8eee412e6517f05e0d15e598f71ee4b
[[email protected] ~]# docker ps 
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
66fb85930b0b   centos:7   "/bin/bash"   3 seconds ago   Up 2 seconds             suspicious_lichterman

3、进入容器更换yum源安装Nginx

[[email protected] ~]# docker ps 
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
66fb85930b0b   centos:7   "/bin/bash"   3 seconds ago   Up 2 seconds             suspicious_lichterman
[[email protected] ~]# docker exec  -it 66fb85930b0b  /bin/bash

更换yum源,目前是没有Nginx源的
[root@66fb85930b0b /]# yum install nginx
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.huaweicloud.com
No package nginx available.
Error: Nothing to do

yum install wget   #下载命令

创建存放旧源目录,然后移动到指定的位置
[root@66fb85930b0b yum.repos.d]# mkdir /tmp/yum
[root@66fb85930b0b /]# cd /etc/yum.repos.d/
[root@66fb85930b0b yum.repos.d]# mv * /tmp/yum

更换yum源
[root@66fb85930b0b yum.repos.d]# wget  -O /etc/yum.repos.d/CentOS-Base.repo   http://mirrors.aliyun.com/repo/Centos-7.repo 
[root@66fb85930b0b yum.repos.d]# wget  -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo 


安装并配置Nginx
[root@66fb85930b0b yum.repos.d]# yum -y install tree nmap sysstat lrzsz dos2unix telnet bash-completion bash-completion-extras vim nc  net-tools rsync
[root@66fb85930b0b yum.repos.d]# yum install nginx -y

关闭Nginx后台运行
[root@66fb85930b0b yum.repos.d]# head /etc/nginx/nginx.conf
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
daemon off;   # 关闭后台运行

自定义web界面
[root@66fb85930b0b html]# cat index.html
wish_Docker_Nginx
[root@66fb85930b0b html]# pwd 
/usr/share/nginx/html
然后退出

4、打包镜像

[[email protected] ~]# docker commit -m "centos" 66fb85930b0b wish/centos-nginx:v1
sha256:bad0b3835b53c7f69961c133478f0cbc1192a01b7e5de267598b4db3af6fc869
[[email protected] ~]# docker image ls 
REPOSITORY          TAG       IMAGE ID       CREATED         SIZE
wish/centos-nginx   v1        bad0b3835b53   4 seconds ago   567MB   # 上一步打包的镜像
nginx               latest    605c77e624dd   8 months ago    141MB
centos              7         eeb6ee3f44bd   12 months ago   204MB
centos              latest    5d0da3dc9764   12 months ago   231MB

5、启动Nginx

[[email protected] ~]# docker run -d -it -p82:80 bad0b3835b53  /usr/sbin/nginx
764cd238d07fed8c450d4f64faf1ac13a6f819f2c6fa9c3cabccc5dc453e23a5
[[email protected] ~]# docker ps 
CONTAINER ID   IMAGE          COMMAND             CREATED          STATUS          PORTS                               NAMES
764cd238d07f   bad0b3835b53   "/usr/sbin/nginx"   2 seconds ago    Up 2 seconds    0.0.0.0:82->80/tcp, :::82->80/tcp   exciting_proskuriakova   # 启动的Nginx
66fb85930b0b   centos:7       "/bin/bash"         33 minutes ago   Up 33 minutes                                       suspicious_lichterman

6、浏览器访问
10.0.0.119:82

这样就打工告成啦!

标签:10.0,root,0.119,nginx,yum,镜像,docker,制作
From: https://www.cnblogs.com/w1sh/p/16726199.html

相关文章

  • docker compose最全文档
    1.dockercompose安装#自动sudoyumupdatesudoyuminstalldocker-compose-plugindockercomposeversion#手动安装DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.doc......
  • 力扣-226-翻转二叉树/剑指Offer-27-二叉树的镜像
    直达链接直观的想法:我可以遍历并重建,但也很明显效率低下,可能达到O(N2),但或许可能拿来当作练习,检查自己遍历/重建二叉树的基本功不过现在先想想有没有效率更高的解法,我觉......
  • P5729 【深基5.例7】工艺品制作
    题目描述现有一个长宽高分别为 w,x,hw,x,h 组成的实心玻璃立方体,可以认为是由 1\times1\times11×1×1 的数个小方块组成的,每个小方块都有一个坐标 (i,j,k)(i,j,k......
  • docker-compose up -d启动镜像报错端口被占用
    Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointxxx:Bindfor0.0.0.0:9005failed:portisalreadyallocated报错显示端......
  • 海康摄像机使用GB28181接入SRS服务器的搭建步骤---封装docker镜像运行容器的方式,本篇
    使用第三方提供的镜像说明:这个是我在网上找的,没有实际验证及使用过,具体效果未知,看下文,我采用的是自己依据官方基础镜像进一步二次封装的镜像地址:https://hub.docker.com/......
  • Python爬取全球疫情数据,制作数据可视化图
    前言开发环境python3.8:解释器pycharm:代码编辑器requests发送请求pyecharts绘制图表pandas读取数据爬虫案例思路流程:一.数据来源分析:......
  • Docker的使用记录
    开始这是第一个尝试在Leanote上面编写文章,我觉得最重要的事情就是能够保证md文件是能够移植的,否则如果这个软件不靠谱的话,我还能把文章移动到别的地方去。所以先写一篇文......
  • docker 安装redis 并设置密码
    拉取镜像dockerpullredis运行容器并设置密码端口号dockerrun-d--namemyredis-p6379:6379redis--requirepass"123456" ......
  • 使用 RainbowKit 和 React 制作漂亮的 Connect Wallet 按钮
    使用RainbowKit和React制作漂亮的ConnectWallet按钮Web3中的身份验证非常简单,但支持所有钱包并制作漂亮的UI可能会很痛苦且耗时。值得庆幸的是,有许多库也使这......
  • macOS Catalina 10.15启动U盘制作
    准备工作16G左右的空U盘,下载系统镜像文件最好官方下载打开终端,输入:sudo空格打开Finder,找到安装MacOS.app(就是你下载的版本安装文件APP),定位到MacOS.app(右键显示包容)/......