热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux运维工作中的经典应用ansible(批量管理)Docker容器技术(环境的快速搭建)

docker技术三部分:image镜像,container容器,registry仓库镜像:传统虚拟机上面安装的镜像包含两个部分,一个是Linux内核的发行版(比如Linux3.13内核)

docker技术三部分:image镜像,container容器,registry仓库
镜像:传统虚拟机上面安装的镜像包含两个部分,一个是Linux内核的发行版(比如Linux3.13内核),一个是操作系统的发行版(docker镜像)。
容器:镜像是静态的,每一层都 只是可读的,通过镜像创建容器就是在镜像上加一个可读可写的层。
. 镜像管理
1.1 下载镜像
docker search centos #查看镜像有哪些版本
docker pull centos:6.9 #下载镜像
docker pull centos:7.5.
docker pull nginx
1.2 查询以下载的镜像信息
docker images #下载镜像信息
docker images -q #只看id
docker inspect ID/name:tag #更详细
1.3 删除镜像
docker rmi ID
docker rmi `docker images -q`
docker rmi $(docker images -q)
1.4 导入导出镜像
[root@docker ~]# docker image save nginx /opt/nginx.tar.gz
[root@docker ~]# docker image load -i /opt/nginx.tar.gz
1.5 启动容器并获取镜像
[root@docker ~]# docker run -d -p : httpd #后台启动
[root@docker ~]# docker ps -a
[root@docker ~]# docker images
定制镜像: centos7.+vim+net-tools+iproute+sshd
(本质 打包:基础镜像+定制功能)
.启动新容器(镜像上加个可读写层)
docker run -it --name "centos7.5" 76d6bc25b8a5
# 新容器命名 基础镜像id
.优化yum源(这里是本地base源优化) (按实际情况操作要不要优化)
mv /etc/yum.repos.d/*.repo /tmp
echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=0" /etc/yum.repos.d/ftp.repo
注释:echo -e 处理特殊字符
3. 安装必须软件包(容器定制功能)
yum install -y vim net-tools iproute openssh-* -y
4.启动SSHD(服务型镜像,要hang住)
mkdir /var/run/sshd
echo 'UseDNS no' /etc/ssh/sshd_config
sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
echo 'root:123456' | chpasswd
/usr/bin/ssh-keygen -A
/usr/sbin/sshd -D #hang住
注意: 以上操作做完之后,会一直不退出,需要用以下命令退回到宿主机,并不关闭容器
ctrl p q
5.制作镜像
docker commit centos7.5 oldguo/centos7_sshd:v2
# 容器名/id 制作的镜像名:版本
#dockerfile定制镜像 ## Centos7.5
#基础镜像 功能分离
[root@docker sshd]# vim dockerfile
FROM centos:7.5.1804
RUN mv /etc/yum.repos.d/*.repo /tmp
RUN echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=0" /etc/yum.repos.d/ftp.repo
RUN yum install -y vsftpd #ftp协议
RUN yum install -y openssh-server #对外开放远程端口用
RUN yum install -y openssh-clients
RUN yum install net-tools* -y #网络管理
RUN yum install iproute-* -y #网络管理
RUN yum install -y wget #下载工具
RUN mkdir /var/run/sshd
RUN echo 'UseDNS no' /etc/ssh/sshd_config
RUN sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
RUN echo 'root:123456' | chpasswd
RUN /usr/bin/ssh-keygen -A
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
注意:/opt/dockerfile/dockerfile
docker build -t "oldguo/centos7_sshd:v3" /opt/dockerfile
#根据文档 制作 镜像
===========================================
docker run -i 与-t 一起用 交互模式
--name -p端口映射 80:80 -v 数据持久化/opt:/test -d后台运行
2. 容器基本管理
2.0 容器的类型
工具类:vim
docker run -it --name="test_vim" 3fe2fe0dab2e /bin/bash
注意:一般都是交互式
服务类:nginx
docker run -d -p 8080:80 --name="discuz" nginx:1.14
注意:通常要hang住,就像redis-server服务启动卡在那里。
2.1 容器的多类启动方式
(1)交互式启动
[root@docker ~]# docker run -it --name "testcentos" centos:6.9 /bin/bash
主要是针对于工具类的容器,一旦exit容器,容器就自动关闭
(2)守护式启动
1.交互式启动容器+Ctrl+p+q
[root@docker ~]# docker run -it --name "testnginx" nginx /bin/bash
加ctrl+p+q
[root@docker ~]# docker attach testnginx 进入(正在运行中的容器)
2.死循环
docker run --name testnginx1 -d nginx /bin/sh -c "while true ;do echo hello world; sleep 1;done"
3.服务前台运行
sshd -D
nginx -g ""
各种服务hang夯住方式
2.2 容器的常用管理命令
docker ps -a -q -l
docker rm 容器ID|容器名称
批量删除已关闭
docker rm -v $(docker ps -aq -f status=exited)
批量强制删除所有
docker rm -f `docker ps -a q`
docker top nginx
docker inspect nginx
docker attach 容器ID|容器名称(工具类)配合ctrl+p+q
docker exec -i -t 容器ID|容器名称 /bin/bash(服务类),一般是做服务类容器调试用
[root@docker ~]# docker exec -it centos6.9 /bin/bash
docker stop
docker kill
docker start -i
docker restart 容器ID|容器名称
3. 数据卷的使用(持久化)
#方式1
docker -it --name 'test' -v /opt:/test centos:7.5.1804
# 将主机的/opt 映射到容器/test
#方式2
通过dockerfile配置
4.制作私有仓库
4.1 配置私有仓库
docker pull registry
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/Registry:/var/lib/registry registry
#restart=always 表示docker重启仓库也跟着重启
#相当于创建了一个容器
#用5000端口
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"],
"insecure-registries": ["10.0.0.100:5000"]
systemctl restart docker
4.2 使用本地镜像:
4.2.1 制作本地镜像并push到
[root@docker ~]# docker tag nginx 10.0.0.100:5000/oldguo/nginx:v1
# 给已存在的镜像打上tag标记
[root@docker ~]# docker images
[root@docker ~]# docker push 10.0.0.100:5000/oldguo/nginx:v1
#使用 docker push 上传标记的镜像
4.2.2 异地进行pull镜像
[root@docker ~]# docker pull 10.0.0.100:5000/oldguo/nginx:v1


   



推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 基于SSL的mysql服务器的主从架构实现说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器从服务器的mysql软件版 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • k8s进阶之搭建私有镜像仓库
    企业级私有镜像仓 ... [详细]
  • NFS文件共享系统
    1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 【Python 爬虫】破解按照顺序点击验证码(非自动化浏览器)
    #请求到验证码base64编码json_img_datajson_raw.get(Vimage)#获取到验证码编码 #保存验证码图片到本地defbase64_to_img(bstr ... [详细]
author-avatar
南京展鸿物流_728
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有