docker基础——自定义镜像、创建私有仓库、查看 docker 运行状态

一、自定义镜像

1,案例1

要求:请自定义一个 docker 镜像,基于 hub.c.163.com/library/centos,要求创建出来的镜像在生成容器的时候,可以直接使用 ifconfig 命令

自定义镜像,输入 vim Dockerfile:

RUN rpm --import

FROM hub.c.163.com/library/centos

MAINTAINER suyunanyan

RUN rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-*

RUN yum install net-tools -y

CMD ["/bin/bash"]

运行:-t 后面是自定义镜像的名称 .表示当前目录 Dockerfile

docker build -t centos .

docker查看images:

测试这个镜像:

--rm 表示退出后自动删除

退出后,docker ps -a | grep centos ,没有之前的centos了:

2,案例2

要求:通过自定义安装nginx,是的本地的index.html作为Nginx默认访问页面

安装 epel.repo:

yum install *epel* -y

查看

ls /etc/yum.repos.d/

拷贝 epel.repo 到当前目录

cp /etc/yum.repos.d/epel.repo epel.repo

新建 index.html

echo ‘hello docker!!!‘ > index.html

vim Dockerfile

输入:

RUN rpm --import

FROM hub.c.163.com/library/centos

MAINTAINER suyunnanyan

RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-*

ADD epel.repo /etc/yum.repos.d/

RUN yum install net-tools nginx -y

RUN rm -rf /usr/share/nginx/html/

ADD index.html /usr/share/nginx/html/

CMD ["nginx", "-g","daemon off;"]

创建镜像:

docker build -t nginx .

运行镜像:

docker run -dit --rm -p 80:80 nginx

访问该服务:

二、创建私有仓库

docker pull hub.c.163.com/library/registry:latest

运行registry镜像:

docker run -dit --name=r_hub -p 5000:5000 -v /home/docker/registry:/var/lib/registry hub.c.163.com/library/registry

docker ps | grep regi

在 192.168.222.151 虚拟机上运行命令

docker pull redis

docker tag docker.io/redis 192.168.222.151:5000/gzuni/redis

推送

docker push 192.168.222.151:5000/gzuni/redis

为什么会推送失败?因为推送用的是https,修改设置:

vim /etc/docker/daemon.json

重启docker:

systemctl restart docker

再次推送:

docker push 192.168.222.151:5000/gzuni/redis

查看本地仓库:

curl -XGET http://192.168.222.151:5000/v2/_catalog

查看tags:

curl -XGET http://192.168.222.151:5000/v2/gzuni/redis/tags/list

删除本地镜像:

docker rmi -f docker.io/redis

从本地仓库下载

docker pull 192.168.222.151:5000/gzuni/redis:latest

仓库中删除镜像

curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/null chmod a+x /usr/local/bin/delete_docker_registry_image

设置仓库目录:

export REGISTRY_DATA_DIR=/home/docker/registry/docker/registry/v2

输入删除命令:

/usr/local/bin/delete_docker_registry_image gzuni/redis:latest

三、查看 docker 运行状态

docker stats

查看操作系统

free -m

限制内存运行

docker run -it --rm -m 200M centos

设置 cpu 亲和性

docker run -it --rm --name=c1 --cpuset-cpus=1 centos

docker 监控

docker pull hub.c.163.com/xbingo/cadvisor:latest

docker run -v /var/run:/var/run -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro -d -p 8080:8080 --name=mon hub.c.163.com/xbingo/cadvisor:latest

浏览器输入http://192.168.222.151:8080/containers/ :

原文地址:https://blog.csdn.net/qq_22059611/article/details/83038041

原文地址:https://www.cnblogs.com/jpfss/p/10949284.html

时间: 2024-10-14 18:49:21

docker基础——自定义镜像、创建私有仓库、查看 docker 运行状态的相关文章

通过已有Nginx镜像创建私有仓库

想搭建一个私有的Docker仓库,查看了各种资料,大多是使用Nginx做代理,可是由于对于Nginx不熟悉,各种关于权限认证的问题,折腾了两天也没有搞定,后来无意在网上看到一篇使用已有镜像的方法,终于搞定了,原文参考:http://cloud.51cto.com/art/201412/458680_all.htm 测试环境 192.168.40.71   CoreOS   仓库服务器 192.168.40.83   CoreOS    客户机 仓库服务器配置 执行下面的命令,启动registry

[python](Docker SDK)上传镜像到私有仓库(ssl、身份认证)

(Docker SDK)上传镜像到私有仓库(ssl.身份认证) API:https://docker-py.readthedocs.io/en/stable/ 环境:python:3.7.3 配置参数: cert = os.path.join(BASE_DIR, "utils/cert.pem") key = os.path.join(BASE_DIR, "utils/key.pem") docker_server = "xx.xx.xx.xx:5555&

04 Docker 制作自定义镜像包

制作自定义镜像包的两种方式 1.创建容器并对容器进行修改,然后打包容器为镜像 2.使用Dockerfile编排镜像 自定义镜像 1.创建一个容器 docker run -itd centos 2.进入容器进行修改配置 docker exec -it 容器id bash 停止容器,不是必须的 3.创建镜像并验证 docker commit 容器id 镜像名称:标签 4.打包镜像 docker save 镜像名称 > 包名.tar 使用 Dockerfile 编排镜像 给容器配置 yum 源 查看宿

Docker第二章:docker基础1--镜像,容器&仓库

1.镜像 Dcoker运行容器之前需要本地存在对应的镜像,如果本地不存在对应的镜像,Docker会尝试从默认镜像仓库下载(默认使用Docker Hub公共注册服务器中的仓库),用户也可以通过配置,使用自定义的本地仓库. 下载一个镜像到本地 命令:docker pull centos [[email protected] ~]# docker pull centos #可以指定特定版本的镜像 latest: Pulling from centos 5932f74ff0cd: Pull comple

ansible 部署基于centos7+docker+nginx+openssl+v2版私有仓库

ansible 部署基于centos7+docker.1.12+nginx+openssl+v2版私有仓库 1.申请域名证书不做详细教程网络上很多 2.ansible-playbook 结构 . ├── hosts # 需要安装服务器IP地址 ├── roles │   ├── docker │   │   ├── defaults │   │   ├── files │   │   │   └── dockerkey #证书 文件加 │   │   │       ├── domain.crt

Dokcer创建私有仓库、私有仓库Web管理

1.直接用Docker提供的镜像registry运行私有仓库 # docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name registry --restart='always' registry -d : 后台运行 -p : 宿主机跟容器映射端口   SERVER_PORT:CONTAINER_PORT -v : 挂载宿主机目录到容器中作为数据卷, docker registry上传镜像默认存放到容器/var/l

在阿里云创建私有仓库上传并拉取

在阿里云上创建私有仓库,为后面的微服务上传镜像做准备,后面会安装harbor 操作指南: 1. 登录阿里云Docker Registry $ sudo docker login --username=wgr332574835 registry.cn-hangzhou.aliyuncs.com 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码. 您可以在产品控制台首页修改登录密码. 2. 从Registry中拉取镜像 $ sudo docker pull registry.cn-han

Microsoft Azure Remoteapp使用自定义镜像创建桌面服务

继续来Azure RemoteApp,上一次利用自带的模板小测了一下Azure的RemoteApp.但是默认模板有很多局限性,比如没办法自定义安装APP.不过Azure中提供了上传自定义模板的功能,下面就来看看自定义模板的上传过程. 打开RemoteApp面板,选择Template Images,打开Upload a Template Image. 选择地区和命名后,还需要安装Azure Powershell,打开上方的链接下载web安装程序进行自动安装. 下一步后下载上传脚本. 接下来准备我们

在Azure China用自定义镜像创建Azure VM Scale Set

在Azure China用自定义镜像创建Azure VM Scale Set 在此感谢世纪互联的工程师Johnny Lee和Lan,你们给了我很大的帮助.因为Azure China的官网没有给出完整的步骤,所以我在这里把完整的步骤总结一下,希望对大家有所帮助. Azure Global有一篇介绍如何用自定义镜像创建Azure VM Scale Set的文章.因为里面用到的"type": "Microsoft.Compute/images" 部分,我自己没在Azure