docker镜像管理和容器管理以及制作本地仓库
Posted xuqidong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker镜像管理和容器管理以及制作本地仓库相关的知识,希望对你有一定的参考价值。
1. 镜像管理 1.1 获取镜像 docker search centos docker pull centos:6.9 docker pull centos:7.5.1804 docker pull nginx 1.2 查询镜像 docker images docker images -q 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 80:80 httpd [root@docker ~]# docker ps -a [root@docker ~]# docker images 1.6 docker一步一步学习制作镜像 语法: 第一个镜像创建: docker ps -a docker commit xxxxxx oldguo/wordpress:v1 docker images 制作镜像: centos7.5+vim+net-tools+iproute+sshd 1.启动新容器 docker run -it --name "centos7.5" 76d6bc25b8a5 2.优化yum源 mv /etc/yum.repos.d/*.repo /tmp echo -e "[ftp] name=ftp baseurl=ftp://10.0.0.100/pub/centos7 gpgcheck=0">/etc/yum.repos.d/ftp.repo 3. 安装必须软件包 yum install -y vim net-tools iproute openssh-* -y 4.启动SSHD 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 注意: 以上操作做完之后,会一直不退出,需要用以下命令退回到宿主机,并不关闭容器 ctrl p q 5.制作镜像 docker commit centos7.5 oldguo/centos7_sshd:v2 ## Centos7.5 [root@docker sshd]# vim dockerfile FROM centos:7.5.1804 RUN mv /etc/yum.repos.d/*.repo /tmp RUN echo -e "[ftp] name=ftp baseurl=ftp://10.0.0.100/pub/centos7 gpgcheck=0">/etc/yum.repos.d/ftp.repo RUN yum install -y openssh-server RUN yum install -y openssh-clients RUN yum install net-tools* -y RUN yum install iproute-* -y 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"] docker build -t "oldguo/centos7_sshd:v3" /opt/dockerfile =========================================== 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 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. 数据卷的使用(持久化) 4.制作私有仓库 4.1 配置私有仓库 docker run -d -p 5000:5000 --restart=always --name registry -v /opt/Registry:/var/lib/registry registry 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 [root@docker ~]# docker images [root@docker ~]# docker push 10.0.0.100:5000/oldguo/nginx:v1 4.2.2 异地进行pull镜像 [root@docker ~]# docker pull 10.0.0.100:5000/oldguo/nginx:v1 故障转移:(高可用) 1.主备系统
以上是关于docker镜像管理和容器管理以及制作本地仓库的主要内容,如果未能解决你的问题,请参考以下文章