美文网首页
docker容器

docker容器

作者: aq_wzj | 来源:发表于2019-01-07 19:19 被阅读0次

    1. 启动容器并获取镜像

    docker  run -d -p 80:80 httpd #后台启动一个httpd的服务
    docker ps -a # 查看
    

    2. 删除容器

    删除所有的容器
    docker rm -f `docker ps -qa`
    
    批量删除已关闭
    docker rm -v $(docker ps -aq -f status=exited)
    
    删除指定容器
    docker rm -f 容器ID/name
    

    3. 基于centos6.9开启一个容器,取名test,

    docker run -it --name "test" centos:6.9
    

    4. 将test容器制作为一个镜像

    docker commit test wzj/centos:6.9
    

    5. 制作带有centos7.5+vim+net-tools+iproute+sshd的镜像

    1. 启动并进入一个新容器
    docker run -it --name "tests" centos:7.5.1804
    
    2. 使用ftp优化yum源, ftp的路径不要错了
    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
    
    3. 安装ssh
    yum install -y vim net-tools  iproute   openssh-*
    
    4. 启动ssh
     yum install -y sed 
     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 tests wzj/centos7_sshd:v2
    

    6. dockerfile的应用

    我们发现, 安装完ssh的容器制作的镜像还是很大, 使用dockerfile, 记录操作步骤, 就可以了

    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 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"]
    

    这样运行dockerfile就可以搭建好容器环境了

    docker build -t "oldguo/centos7_sshd:v3" /opt/dockerfile
    

    7. 数据卷的使用(持久化)

    7.1 首先利用dockerfile起一个容器并安装运行Redis

    创建一个dockfile目录,将宿主机的Redis安装目录压缩放到这里,
        dockerfile文件放这里, Redis配置文件放这里
        
    mkdir -p /opt/dockfile/redis3
    tar -cvf redis-3.2.10.tar  redis-3.2.10
    
    redis的配置文件
    vim redis.conf
    port 6379
    logfile /test/redis.log
    dir /test/
    dbfilename dump.rdb
    save 900 1
    save 300 10
    save 60 10000
    appendonly yes
    appendfsync always
    requirepass 123
    
    写dockerfile
    vim dockerfile
    FROM centos:7.5.1804
    VOLUME ["/test"]
    COPY redis-3.2.10.tar /data/
    COPY redis.conf /test/
    RUN tar -xf /data/redis-3.2.10.tar -C /data/
    EXPOSE 6379
    CMD ["/data/redis-3.2.10/src/redis-server","/test/redis.conf"]
    
    运行docker, 后面有一个点不能少, 代表dockerfile就在当前目录下
    docker build -t "wzj/centos_redis:v1" . 
    运行装好Redis的容器
    docker  run -d -p 16380:6379 -v /opt/Registry:/var/lib/registry wzj/centos_redis:v1
    
    查看数据所在目录
    docker inspect 容器ID/容器名
    这里面的Mounts下面的Source值为路径,cd进去就可以了
    

    7. 容器管理

    容器的类型
        工具类:会进入到容器中, 例如要使用vim
            docker run -it --name="test_vim"  3fe2fe0dab2e /bin/bash
        服务类:只需要后台启一个服务就行,不用进入容器,例如开启一个nginx服务 
            docker run -d -p 8080:80 --name="discuz" nginx:1.14
            
    查看所有容器 docker ps -a
    关闭一个容器 docker stop centos6.9
    强制关闭一个容器 docker kill nginx 
    启动一个关闭了的容器 docker start -i centos6.9
    重启一个容器 docker restart centos6.9
    进入启动的容器: docker attach 容器ID/name
    查看容器的详细信息 docker inspect 容器ID/name
    查看容器中运行的进程信息 docker top 容器ID/name
    

    8. 制作私有Registry仓库

    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
    
    2. 制作本地镜像并push
    docker tag nginx 10.0.0.100:5000/oldguo/nginx:v1
    docker images
    docker push 10.0.0.100:5000/oldguo/nginx:v1
    
    3. 异地进行pull镜像
    docker pull  10.0.0.100:5000/oldguo/nginx:v1
    

    相关文章

      网友评论

          本文标题:docker容器

          本文链接:https://www.haomeiwen.com/subject/oqjprqtx.html