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.主备系统   
      
      
原文地址:https://www.cnblogs.com/xuqidong/p/11785941.html