美文网首页
docker 常用命令

docker 常用命令

作者: Miacis | 来源:发表于2019-04-15 17:10 被阅读0次

    docker镜像命令

    docker search centos -s 100                         搜索镜像/-s 星级参数
    docker pull centos                                  拉取镜像
    docker image list       docker images               查看本地镜像
    docker image inspect 镜像id                         查看镜像详情
    docker rmi centos --force                           删除镜像/--force 强制删除 不能删的话就先删容器
    docker image -q                                     查看所有镜像的id
    docker image history 名称/id                        查看镜像的制作过程
    

    查看容器运行状态

    docker ps   /   docker container ls     查看当前运行的容器
    docker ps -a                            查看所有运行的容器(运行/不运行)
    ctrl+p+q                                退出时后台运行
    exit                                    关闭并退出
    
    

    容器命令

    docker run -it centos /bin/bash                 创建并运行新容器
    docker create -it centos /bin/bash              创建但不运行
    
    docker start 名称/id                            启动容器
    docker attach 名称/id                           连接容器(在开启状态下能够再次连接)
    
    docker create -it --restart=always centos /bin/bash   --restart=always
    docker start centos                             启动centos服务
    systemctl restart docker                        重启容器服务
    
    docker inspect 容器id                             查看容器详细信息
    docker inspect  --format '{{.brings.Gatway}}' centos        按指定格式输出
    
    docker start 名称/id                              启动容器
    docke rm 名称/id                                删除容器
    docker stop 名称/id                               关闭容器
    docker kill 名称/id                               强制关闭容器
    docker rm `docker ps -a |awk '/Exited/{print $1}'`   删除所有已关闭的容器
    docker pause 名称/id                              暂停容器内的所有进程
    docker unpause                                  恢复容器暂停的进程
    
    docker run -it -d --rm --name "testcontainer" 镜像ad     运行一个自定义名字的容器(后台运行)
               -d   运行在后台     --rm  退出时删除容器
    docker ps
    1    docker attach 名称/id
    ls
    2 docker logs 名称/id                 能够查看终端1中执行的命令
    
    
    docker ps 
    docker rename id/名称 hahahaha            将容器重新命名
    docker ps 
    
    
    

    把正在运行的容器直接导出成tar包的镜像文件

    docker ps                             #确定正在运行的容器
    docker export 容器名称 > 镜像.tar         #将容器打包成tar包
    
    

    导入镜像归档文件到其他宿主机:

     docker import python_app.tar python_app:v3
     docker images
    

    镜像没有名字,随后可以单独起名字(name和tag)

    docker 镜像id mycentos:v3
    

    镜像迁移

    docker save -o nginx.tar nginx
    docker load < nginx.tar
    

    将正在运行的容器直接提交成为一个镜像

    docker start id/名称                      启动容器
    docker exec -it id/名称 /bin/bash          exec 表示后面加可执行的命令参数    进入容器
    touch test.txt                          创建一个文件
    exit                                    退出
    docker commit id/名称 wing/helloworld:v2      将新建的文件提交到镜像中保存
    

    通过dockerfile创建镜像

    # docker pull python:2.7-slim         # 使用官方提供的 Python 开发镜像作为基础镜像
    1 创建镜像所在的文件夹和Dockerfile文件夹
    # mkidr python_app
    # cd python_app
    # vim app.py
    from flask import Flask
    import socket
    import os
    
    app = Flask(__name__)
     
    @app.route('/')
    def hello():
        html = "<h3>Hello {name}!</h3>" \
               "<b>Hostname:</b> {hostname}<br/>"           
        return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname())
        
    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=80)
    2 应用依赖
    # vim requirements.txt
    Flask
    3 Dockerfile制作容器镜像:
    # vim Dockerfile
    FROM python:2.7-slim 
    WORKDIR /app
    ADD . /app
    RUN pip install --trusted-host pypi.python.org -r requirements.txt
    EXPOSE 80
    ENV NAME World
    CMD ["python", "app.py"]
    # ls
    Dockerfile  app.py   requirements.txt
    4 构建镜像:
    # docker build -t id/名称 .
    
    # 查看结果
    docker image ls
    # 启动容器
    docker run -p 4000:80 id/名称
    # 查看容器
    docker ps
    # 进入容器
    docker exec -it id /bin/bash
    # 访问容器应用
    curl http://10.0.104.200:4000
    
    给容器镜像打tag起一个完整的名字:
    # docker tag helloworld yanqiang20072008/helloworld:v1
    yanqiang20072008为我在docker hub的用户名
    
    推送镜像到docker hub:
    # docker push yanqiang20072008/helloworld:v1
    
    
    
    
    

    相关文章

      网友评论

          本文标题:docker 常用命令

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