美文网首页
docker常用命令

docker常用命令

作者: kevin_lln | 来源:发表于2020-11-09 00:00 被阅读0次

    1. 检查docker状态

    # 查看docker daemon的运行状态
    ps axf | grep docker
    # 查看各个容器信息
    docker info
    # 查看容器配置信息
    docker inspect 容器名
    # 查看容器状态
    docker ps
    # 查看资源状态:CPU、内存
    docker stats 容器名
    
    docker top 容器名
    # 查看容器日志
    docker logs -f 容器名
    # 查看挂载的卷
    docker volume ls
    # 查看挂载信息
    docker volume inspect 卷名
    # 拷贝文件到容器中--->docker cp ./start.sh a375:/home/mind/model
    docker cp 主机文件目录 容器名:容器文件目录
    

    2.启动docker

    2.1方式一

    # 启动docker
    sudo service docker start
    # 使docker开机启动
    sudo chkconfig docker on
    # 停止docker服务
    sudo service docker stop
    

    2.2 方式二

    # 启动docker
    sudo systemctl start docker
    # 使docker开机启动
    sudo systemctl enable docker
    # 停止docker服务
    sudo systemctl stop docker
    

    2.3 重启容器服务

    # 重新拉起服务
    sudo systemctl daemon_reload
    # 重启docker
    sudo systemctl restart docker
    

    2.4 建立docker用户组

    # 建立docker用户组
    sudo groupadd docker
    # 将当前用户加入docker用户组
    

    3.列出镜像

    # 搜索镜像centos -s N参数可以指定仅显示评价为N星以上的镜像
    docker search centos
    # 根据仓库名列出镜像
    docker images ubuntu
    # 列出已经下载下来的镜像
    docker images
    # 列出的特定的某个镜像
    docker images ubuntu:16.04
    # 显示悬挂镜像
    docker images -f dangling=true
    # 拉取镜像
    docker pull [Docker Registry地址]<仓库名>:<标签>
    

    4.操作镜像

    4.1 镜像基本操作

    # 从dockerfile构建镜像
    docker build -t 上下文路径/URL .
    docker build -t nginx:v3 .
    #  删除镜像
    docker rmi 镜像1 镜像2
    docker rmi centos  # 删除本地镜像
    docker rmi $(docker images -q redis) # 删除所有名为redis的镜像
    docker rmi $(docker images -q -f before=mongo:3.2) # 删除所有在mongo:3.2之前的镜像
    # 强制删除镜像
    docker image rm -f 镜像id
    # 查看容器的存储层的改动
    docker diff 容器id/容器名
    # 查看对webserver的改动
    docker diff webserver
    # 查看镜像nginx:latest的历史构建记录
    docker history nginx:v2
    # 上传/下载镜像
    ## 拉取nginx镜像,完整格式为:[username]/xxx:tag
    docker pull cloudman6/httpd:v1
    ## 将镜像推送到Docker Hub,完整格式为:[username]/xxx:tag
    docker push cloudman5/httpd:v1
    # 标记镜像
    ## 将ba58这个镜像重命名为192.068.7.26:5000/test:v1
    docker tag ba58 xxx.xxx.xxx.xxx:5000/test:v1
    ## 上传镜像到私有镜像仓库
    docker push xxx.xxx.xxx.xxx:5000
    ## 用curl查看仓库中的镜像
    curl https://xxx.xxx.xxx.xxx:5000/v1/search
    # 到另一台机器上下载镜像
    docker pull xxx.xxx.xxx.xxx:5000/test
    

    4.2 导入/导出镜像文件

    # 镜像保存为归档文件
    ## 将容器保存为镜像 ---> docker commit 容器名/容器id:标签
    ## 将webserver容器保存为镜像nginx:v2
    docker commit --author "LiuLunNan<xxxxx@gmail.com>" --message "修改了默认网页" webserver nginx:v2 
    ## 在一台机器上将镜像保存为归档文件
    docker save alpine|gizp > alpine-latest.tar.gz
    ## 在另一台机器上加载镜像
    docker load -i alpine-latest.tar.gz
    
    # 导入镜像 --> docker import 文件|URL|-仓库名:标签
    ## 从rootfs压缩包导入,这条命令下载了xxxxx.tar.gz文件,并且作为根文件系统展开导入,并保存为镜像 openvz/ubuntu:14.04
    docker import https://xxxxx.tar.gz openvz/ubuntu:14.04
    

    5.容器操作

    5.1 Docker容器操作

    # 容器运行/启动/终止
    ## 运行容器
    docker run -d ubuntu:14.04/bin/sh -c "while true;do echo hello world;sleep 1;done"
    ### docker启动一个ubuntu容器并在守护态运行
    ### 注:docker run的时候如果添加--rm标记,则容器在终止后会立即删除,--rm和-d参数不能同时使用
    #### 启动一个nginx容器,容器终止即删除容器
    docker run --name webserver --rm -p 80:80 nginx
    #### 启动一个nginx容器,守护进程运行
    docker run --name webserver -d -p 80:80 nginx
    
    ## 容器启动和终止
    ### 启动一个终止态的容器
    docker start 容器id/容器名
    ### 终止一个运行中的容器
    docker stop 容器id/容器名
    ### 重启一个容器
    docker restart 容器id/容器名
    
    ## 删除容器
    ### 删除一个处于终止状态的容器
    docker rm 容器名/容器id
    docker rm trusting_newton
    ### 清理全部终止状态的容器
    docker rm $(docker ps -a -q)
    docker container prune -f
    

    5.2 查看容器状态

    # 查看容器信息
    docker ps
    # 查看所有容器信息,包括终止容器
    docker ps -a
    # 获取容器的日志信息
    docker logs 容器名
    # 在宿主机查看某个容器cpu、内存、网络、io情况
    docker stats 容器名/容器id
    # 在宿主机查看全部容器cpu、内存、网络、io情况
    docker stats
    

    5.3 进入容器与容器交换

    # 进入容器与容器交换
    ## 交换式终端方式进入,注意:对容器来说,这将重启一个终端
    docker exec -it 容器名/容器id /bin/bash
    ## 交互式终端方式进入webserver容器,并执行了bash命令
    docker exec -it webserver bash
    # 将当前终端attch到启动容器的终端
    docker attach 容器名/容器id
    # 以交互式方式创建容器
    

    5.4 导入/导出容器

    # 导出容器快照为tar包
    ## 导出容器为容器快照,ubuntu.tar
    docker export 容器名/容器id > ubuntu.tar
    
    # 从tar包快照导入为容器
    ## 从容器快照文件中再导入为镜像
    cat ubuntu.tar|docker import - test/ubuntu:v1.0
    
    # 指定URL或者某个目录,从容器快照文件中再导入为镜像
    docker import https//:xxxx
    

    6.Registry

    # 登录公共Registry
    ## 登录docker.io
    docker login -u username
    

    7. 数据卷

    # 使用bind mount挂载一个主机目录作为数据卷:主机的/src/webapp目录到容器的/opt/webapp目录
    docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
    
    # 使用docker managed volume挂载容器数据卷,将在主机/var/lib/docker/volumes/为容器建立一个数据卷目录,可以使用docker inspect web查看Mounts-Source的内容即为主机目录,即使删除容器,数据卷目录页不会被删除
    docker run -d -P --name web -v /opt/webapp training/webapp python app.py
    

    8. 容器访问控制

    # 检查转发是否打开
    sysctl net.ipv4.ip_forward
    # 手动开启转发
    sysctl -w net.ipv4.ip_forward=1
    # 查看网桥和端口连接信息
    brctl show
    # 查看IP地址配置
    ip addr
    # 查看路由信息
    ip route
    # 查看路由信息
    ifconfig 网卡名
    

    相关文章

      网友评论

          本文标题:docker常用命令

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