美文网首页
docker基本操作

docker基本操作

作者: 知识分享share | 来源:发表于2021-02-04 14:48 被阅读0次

    docker基本

    1.换源

    vi /etc/docker/daemon.json

    "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]

    2.拉取并启动容器

    docker以ubuntu15.10镜像创建一个新容器,然后在容器里执行/bin/echo 'test',输出结果

    docker run ubuntu:15.10 /bin/echo 'test'

    docker进入终端模式 -i输入流 -t打开终端

    docker run -i -t ubuntu:15.10 /bin/bash

    exit退出终端,退出容器

    后台模式启动容器

    docker run -d ubuntu:15.10 /bin/sh -c "sleep test"

    查看后台运行容器

    docker ps

    • container id:容器id

    • image:使用的镜像

    • command:启动容器时运行的命令

    • created:容器的创建时间

    • status:容器状态

      • created(已创建)
      • restarting(重启中)
      • running或up(运行中)
      • removing(迁移中)
      • paused(暂停)
      • exited(停止)
      • dead(死亡)
    • ports:容器的端口信息和使用的连接类型(tcp/udp)

    • names:自动分配的容器名称

    docker logs (commonid/name)查看容器内的标准输出

    docker logs 1231313

    docker stop (commonid/name)停止容器

    3.容器使用

    获取镜像

    docker pull ubuntu

    使用ubuntu镜像启动一个容器

    docker run -it ubuntu /bin/bash

    参数说明:

     -i:交互式操作
     -t:终端
     ubuntu:ubuntu镜像
     /bin/bash:放在镜像后的命令,进入终端bash命令
     退出终端 exit
    

    启动已停止运行的容器

    查看所有的容器命令

    docker ps -a

    使用docker start (commonid/name)启动一个已停止的容器

    docker start b750bbbcfd88

    进入一个已启动的容器

    docker attach b750bbbcfd88

    后台运行-d,加了-d参数默认不会进入容器,想要进入容器需要使用docker exec

    docker run -itd --name ubuntu-test ubuntu /bin/bash

    docker exec -it 123133 /bin/bash

    停止一个容器

    docker stop commonid

    重启容器

    docker restart commonid

    进入容器

    加-d参数,容器进入后台,可以使用下面的命令进入容器

    docker attach commonid

    docker exec commonid 退出容器终端,不会导致容器停止

    4.导出和导入容器

    导出容器

    docker export commonid > ubuntu.tar

    导入容器快照为镜像

    docker import ubuntu.tar ubuntu:1510

    docker import http://example.com/exampleimage.tgz example/imagerepo

    查看镜像

    docker images

    删除镜像

    docker image rm name:tag

    删除容器

    docker rm -f commonid

    清理掉所有处于终止状态的容器

    docker container prune

    5.运行一个web应用

    docker pull training/webapp 载入镜像

    -d让容器后台运行

    -P将容器内部使用的网络端口随机映射到我们使用的主机上

    docker run -d -P training/webapp python app.py

    docker run -d -p 5000:5000 training/webapp python app.py

    查看后台运行状态

    docker ps

    查看容器端口

    docker port commonid

    查看web应用日志

    docker logs -f commonid

    查看web应用容器的进程

    docker top commonid

    使用docker inspect查看docker底层信息

    docker inspect name

    docker ps -l查询最后一次创建的容器

    docker镜像使用

    列出镜像列表

    docker images

    使用镜像运行容器

    docker run -tid ubuntu:15.10 /bin/bash

    获取一个新的镜像

    docker pull ubuntu:13.10

    使用镜像运行容器

    docker run -tid ubuntu:13.10 /bin/bash

    查找镜像

    docker search httpd

    运行镜像

    docker run httpd

    删除镜像

    docker rmi httpd

    创建镜像

    1. 从已经创建的容器中更新镜像,并且提交这个镜像
    2. 使用dockerfile指令来创建一个新的镜像
    更新镜像
        1.  使用镜像来创建一个容器,在容器中使用apt-get update更新,exit退出容器
    
        2.  换源更新下载vim 
     
        mv /etc/apt/sources.list /etc/apt/sources.list.bak
        echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.list
        echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
        echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
        echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list 
        
        docker run -it ubuntu:15.10 /bin/bash
    
        -m:提交的描述信息 -a:指定镜像作者 1231123:容器id runoob/ubuntu:v1:指定要创建的目标镜像名
        
        docker commit -m="update" -a="runoob" 131313 runoob/ubuntu:v1
        
        docker tag ivan/gcc:v1 843741683/gcc:v1
        
        docker push 843741683/gcc:v1
        
        docker images 
        
        查看更新的镜像
    构建镜像
        docker build 创建一个Dockerfile告诉docker如何构建我们的镜像
    
        
        FROM centos:6.7
        RUN /bin/echo 'root:123456'|chpasswd
        RUN useradd runoob
        RUN /bin/echo 'runoob:123456'|chpasswd
        RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
        EXPOSE 22
        EXPOSE 80
        CMD /usr/sbin/sshd -D 
        
    
        -t:指定要创建的目标镜像名 
        .:dockerfile文件所在的目录
        docker build -t runoob/centos:6.7 .
        docker images
        docker run -it runoob/centos:6.7 /bin/bash
    设置镜像标签
        docker tag commonid runoob/centos:dev
    

    6.docker容器链接

    1.网络端口映射
    
    -P:是容器内部端口随机映射到主机的高端口
    
    -p:是容器内部端口绑定到指定的主机端口
    
    指定ip端口udp
    
    docker run -d -P training/webapp python app.py
    
    docker ps
    
    docker run -d -p 5000:5000 training/webapp python app.py
    
    docker run -d -p 127.0.0.1:5001:5000/udp training/webapp python app.py
    
    docker port name 5000
    
    2.docker 容器互联
    
    docker连接会创建一个父子关系,其中 父容器可以看到子容器的信息
    
    容器命名 --name
    
    docker run -d -P --name runoob training/webapp python app.py
    
    docker ps -l
    
    3.新建网络
    
    -d:参数指定docker网络类型,有bridge.overlay
    
    docker network create -d bridge test-net
    
    docker network ls
    
    docker run -itd --name test1 --network test-net ubuntu /bin/bash
    
    docker run -itd --name test2 --network test-net ubuntu /bin/bash
    
    apt-get update 
    
    apt install iputils-ping
    
    docker exec -it test1 /bin/bash
    
    ping test2
    
    配置dns
    
    查看容器dns信息
    
    docker run -it --rm  ubuntu cat etc/resolv.conf
    
    -rm:容器退出时自动清理容器内部的文件系统
    
    -h hostname或者--hostname=HOSTNAME:设定容器的主机名,它会被写到容器内的/etc/hostname和/etc/hosts
    
    --dns=ip_address:添加dns服务器到容器的/etc/resolv.conf,让容器用这个服务器来解析所有不在/etc/hosts中的主机名
    
    --dns-search=DOMAIN:设定容器的搜索域,当设定搜索域为.com
    
    docker run -it --rm -h host_ubuntu --dns=114.114.114.114 --dns-search=test.com ubuntu
    

    7.docker仓库管理

    docker hub
    
    docker login
    
    docker logout 
    
    docker search ubuntu
    
    docker pull ubuntu
    
    docker image ls
    
    docker push ubuntu:18.10
    
    docker search ubuntu:18.10
    

    8.使用Dockerfile定制镜像

    FROM centos
    RUN yum install wget
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
    && tar -xvf redis.tar.gz

    相关文章

      网友评论

          本文标题:docker基本操作

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