帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
05-容器镜像技术揭秘|发布容器服务器|私有镜像仓库
发布时间:2024-03-05 17:43:10   分类:帮助文档
05:容器镜像技术揭秘|发布容器服务器|私有镜像仓库 容器镜像技术揭秘|发布容器服务器|私有镜像仓库 创建镜像使用commit方法创建自定义镜像。Dockerfile打包镜像创建apache服务镜像制作 php 镜像 微服务架构创建nginx镜像 发布服务通过映射端口发布服务容器共享卷 docker私有仓库 创建镜像 使用commit方法创建自定义镜像。 使用现有镜像启动容器,在该容器基础上修改,使用commit制作新镜像 [root@docker-0001 ~]# docker run -it centos:latest [root@02fd1719c038 ~]# rm -f /etc/yum.repos.d/*.repo [root@02fd1719c038 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.myhuaweicloud.com/repo/CentOS-Base-7.repo [root@02fd1719c038 ~]# yum install -y net-tools vim-enhanced tree bash-completion iproute psmisc && yum clean all [root@02fd1719c038 ~]# exit [root@docker-0001 ~]# docker commit 02fd1719c038 myos:latest Dockerfile打包镜像 创建apache服务镜像 [root@docker-0001 ~]# mkdir apache; cd apache [root@docker-0001 apache]# vim Dockerfile FROM myos:latest RUN yum install -y httpd php ENV LANG=C ADD webhome.tar.gz /var/www/html/ WORKDIR /var/www/html/ # 永久性的cd EXPOSE 80 CMD ["/usr/sbin/httpd", "-DFOREGROUND"] # -DFOREGROUND 必须加这个 放在前台运行 不然容器起不来 # 拷贝 webhome.tar.gz 到当前目录中 [root@docker-0001 apache]# docker build -t myos:httpd . # 验证 [root@localhost web]# docker run -itd myos:httpd #因为是后台服务,所以要使用-d参数 制作 php 镜像 [root@docker-0001 ~]# mkdir php; cd php [root@docker-0001 php]# vim Dockerfile FROM myos:latest RUN yum install -y php-fpm EXPOSE 9000 CMD ["/usr/sbin/php-fpm", "--nodaemonize"] [root@docker-0001 php]# docker build -t myos:php-fpm . # 验证服务 [root@docker-0001 ~]# docker run -itd myos:php-fpm deb37734e52651161015e9ce7771381ee6734d1d36bb51acb176b936ab1b3196 [root@docker-0001 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS deb37734e526 myos:php-fpm "/usr/sbin/php-fpm -…" 17 seconds ago Up 15 seconds [root@docker-0001 ~]# docker exec -it deb37734e526 /bin/bash [root@deb37734e526 ~]# ss -ltun Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 128 *:9000 *:* 微服务架构 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。将一个应用拆分。 微服务优点: 高度可扩展、出色的弹性、易于部署、易于访问、更加开发松耦合高内聚 创建nginx镜像 # 编译软件包 [root@docker-0001 ~]# yum install -y gcc make pcre-devel openssl-devel [root@docker-0001 ~]# useradd nginx [root@docker-0001 ~]# tar -zxvf nginx-1.12.2.tar.gz [root@docker-0001 ~]# cd nginx-1.12.2 [root@docker-0001 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module [root@docker-0001 nginx-1.12.2]# make && make install [root@docker-0001 nginx-1.12.2]# # 拷贝 docker-images/info.html和info.php 到 nginx/html 目录下 [root@docker-0001 nginx-1.12.2]# cd /usr/local/ [root@docker-0001 local]# tar czf nginx.tar.gz nginx # 制作镜像 [root@docker-0001 local]# mkdir /root/nginx ;cd /root/nginx [root@docker-0001 nginx]# cp /usr/local/nginx.tar.gz ./ [root@docker-0001 nginx]# vim Dockerfile FROM myos:latest RUN yum install -y pcre openssl && useradd nginx ADD nginx.tar.gz /usr/local/ EXPOSE 80 WORKDIR /usr/local/nginx/html CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"] # -g 配置参数 daemon off 让nginx在前台运行 [root@docker-0001 nginx]# docker build -t myos:nginx . # 验证服务 [root@docker-0001 ~]# docker rm -f $(docker ps -aq) deb37734e526 [root@docker-0001 ~]# docker run -itd myos:nginx e440b53a860a93cc2b82ad0367172c344c7207def94c4c438027c60859e94883 [root@docker-0001 ~]# curl http://172.17.0.2/info.html Hello World 发布服务 通过映射端口发布服务 [root@docker-0001 ~]# docker run -itd -p 80:80 myos:httpd # 把 docker-0001 变成 nginx 服务,首先必须停止 apache [root@docker-0001 ~]# docker stop $(docker ps -q) [root@docker-0001 ~]# docker run -itd -p 80:80 myos:nginx 容器共享卷 Docker容器不适合保存任何数据,数据文件与配置文件频繁更改,修改多个容器中的数据非常困难,多容器之间有数据共享、同步需求,重要数据在容器内不方便管理易丢失,解决这些问题请使用主机卷映射功能。 Docker可以映射宿主机文件或目录到容器中: 目标对象不存在就自动创建 目标对象存在就直接覆盖掉 多个容器可以映射同一个目标对象来达到数据共享的目的 启动容器时,使用 -v 映射参数(可有多个) 语法格式如下: docker run -itd -v 宿主机对象:容器内对象 myos:latest [root@docker-0001 ~]# mkdir /var/webconf [root@docker-0001 ~]# cp /usr/local/nginx/conf/nginx.conf /var/webconf/ [root@docker-0001 ~]# vim /var/webconf/nginx.conf location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } [root@docker-0001 ~]# docker run -itd -p 80:80 --name nginx \ -v /var/webconf/nginx.conf:/usr/local/nginx/conf/nginx.conf myos:nginx # 查看验证 [root@docker-0001 ~]# docker exec -it nginx /bin/bash [root@e440b53a860a html]# cat /usr/local/nginx/conf/nginx.conf [root@e440b53a860a html]# # 查看 php 相关配置是否被映射到容器内 共享网卡 docker私有仓库 搭建私有仓库服务器 [root@localhost ~]# yum install docker-distribution [root@localhost ~]# systemctl start docker-distribution [root@localhost ~]# systemctl enable docker-distribution 使用curl测试 [root@localhost ~]# curl http://仓库ip:5000/v2/_catalog {"repositories":[]} 搭建私有仓库服务器 修改docker配置文件,改配置文件默认连接的仓库为国外官网的仓库,我们需要修改为自己定义的192.168.1.100服务器。 [root@localhost ~]# vim /etc/docker/daemon.json # 默认没有该文件,需要新建 { "exec-opts": ["native.cgroupdriver=systemd"], # cgroup驱动 "registry-mirrors": ["https://hub-mirror.c.163.com"], # 默认下载仓库 使用国内源能快一点 "insecure-registries":["192.168.1.100:5000", "registry:5000"] } # insecure-registries后面根私有仓库的服务器IP和端口 [root@localhost ~]# docker rm -f $(docker ps -aq) [root@localhost ~]# systemctl restart docker # 注意:重启docker服务前要停止所有容器 上传镜像到私有仓库 使用curl查看刚刚上传的镜像 查询有什么镜像 [root@docker-0001 ~]# curl http://192.168.1.100:5000/v2/_catalog {"repositories":["busybox","myos"]} 查询镜像有什么标签 [root@docker-0001 ~]# curl http://192.168.1.100:5000/v2/myos/tags/list {"name":"myos","tags":["httpd","latest","nginx","php-fpm"]} 在一个没有任何镜像的机器上启动容器 语法格式: docker run -it 仓库IP:5000/镜像的名称:镜像的标签 [root@docker-0002 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE # 查看默认没有镜像 [root@docker-0002 ~]# docker run -it 192.168.1.100:5000/myos:latest Unable to find image '192.168.1.100:5000/myos:latest' locally Trying to pull repository 192.168.1.100:5000/myos ... latest: Pulling from 192.168.1.100:5000/myos b1300879af4c: Pull complete
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价