zoukankan      html  css  js  c++  java
  • Centos7 docker 常用指令

    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上

    一、docker的安装及卸载

    1.查看当前系统内核版本:

    [root@docker ~]# uname -r
    3.10.0-514.el7.x86_64

    2.安装docker

    [root@docker ~]# yum -y install docker-io

    3.启动 Docker 后台服务

    [root@docker ~]# systemctl start docker.service

    4.镜像加速

    鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是阿里的镜像地址:

    在/etc/docker/daemon.json文件中添加如下内容.

    {
      "registry-mirrors": ["https://wghlmi3i.mirror.aliyuncs.com"]
    }

    或者使用如下地址

    {
      "registry-mirrors": ["https://registry.docker-cn.com"]
    }

    修改保存后重启 Docker 以使配置生效,至此,docker安装完成!!!

    5.卸载docker

    列出你安装过的包

    [root@docker ~]# yum list installed | grep docker
    docker.x86_64                        2:1.13.1-53.git774336d.el7.centos @extras  
    docker-client.x86_64                 2:1.13.1-53.git774336d.el7.centos @extras  
    docker-common.x86_64                 2:1.13.1-53.git774336d.el7.centos @extras  

    6.删除软件包

    [root@docker ~]# yum -y remove docker.x86_64
    [root@docker ~]# yum -y remove docker-client.x86_64
    [root@docker ~]# yum -y remove docker-common.x86_64

    二、docker 常用指令

    1.获取一个新的镜像

    [root@docker ~]# docker pull [镜像名称]

    2.列出镜像列表

    [root@docker ~]# docker images
    REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
    docker.io/hello-world   latest              e38bc07ac18e        2 weeks ago         1.85 kB
    docker.io/nginx         latest              b175e7467d66        2 weeks ago         109 MB
    docker.io/centos        latest              e934aafc2206        2 weeks ago         199 MB
    docker.io/mysql         latest              5195076672a7        6 weeks ago         371 MB

    各个选项说明:

    • REPOSITORY:表示镜像的仓库源

    • TAG:镜像的标签

    • IMAGE ID:镜像ID

    • CREATED:镜像创建时间

    • SIZE:镜像大小

    3.查找镜像

    我们也可以使用 docker search 命令来从 Docker Hub 网站来搜索镜像

    [root@docker ~]# docker search nginx
    INDEX       NAME                                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    docker.io   docker.io/nginx                                                  Official build of Nginx.                        8341      [OK]       
    docker.io   docker.io/jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker c...   1325                 [OK]
    docker.io   docker.io/richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable ...   547                  [OK]
    docker.io   docker.io/jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as...   356                  [OK]
    docker.io   docker.io/kong                                                   Open-source Microservice & API Management ...   182     

    4.docker run指令:

    Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。

    参数说明:
    -d:让容器在后台运行。
    -P:将容器内部使用的网络端口映射到我们使用的主机上。
    -t:在新容器内指定一个伪终端或终端。
    -i:允许你对容器内的标准输入 (STDIN) 进行交互
    -p:绑定指定端口

    实例:

    docker run -p 80:80 
    -v $PWD/nginx/html:/usr/share/nginx/html 
    -v $PWD/nginx/conf:/etc/nginx 
    -v $PWD/nginx/logs:/var/log/nginx 
    --rm --name nginx -d nginx

    5.docker exec :在运行的容器中执行命令

    OPTIONS说明:

    • -d :分离模式: 在后台运行

    • -i :即使没有附加也保持STDIN 打开

    • -t :分配一个伪终端

    实例:

    docker exec -it 775c7c9ee1e1 /bin/bash  #其中775c7c9ee1e1 为容器ID号

    6. docker logs [ID或者名字]    可以查看容器内部的标准输出

    # docker logs 353e6c82b2fc
    # docker logs -f 353e6c82b2fc
    
    -f:让 dokcer logs 像使用 tail -f 一样来输出容器内部的标准输出。

    7. 停止WEB应用容器

    #docker stop cid|names

    8. 移除WEB应用容器

    #docker rm CID|NAMES

    9. 查询最后一次创建的容器

    #docker ps -l

    10.docker commit :从容器创建一个新的镜像。

    OPTIONS说明:
     -a :提交的镜像作者;
     -c :使用Dockerfile指令来创建镜像;
     -m :提交时的说明文字;
     -p :在commit时,将容器暂停。

    提交变更,类似于git的commit,只提交变化的部分

    docker commit 2ee8517b15cf test/oracle

    也可以像git一样指定更加详细的提交信息.

    # docker commit -a "saneri" -m "my dev oracle" 5cbe0fdb46a6  dev_p2p/oracle:latest

    11.docker ps : 列出容器

    语法

    docker ps [OPTIONS]

    OPTIONS说明:

    • -a :显示所有的容器,包括未运行的。

    • -f :根据条件过滤显示的内容。

    • --format :指定返回值的模板文件。

    • -l :显示最近创建的容器。

    • -n :列出最近创建的n个容器。

    • --no-trunc :不截断输出。

    • -q :静默模式,只显示容器编号。

    • -s :显示总的文件大小。

    12.docker inspect : 获取容器/镜像的元数据

    语法: docker inspect [OPTIONS] NAME|ID [NAME|ID...]

    OPTIONS说明:

    • -f :指定返回值的模板文件。

    • -s :显示总的文件大小。

    • --type :为指定类型返回JSON。

    实例:获取镜像tomcat的元信息# docker inspect tomcat

    [
        {
            "Id": "168ee1a88f2e4870067c1224693b846e4c086172b69e3a387afebbd641b53335",
            "Created": "2020-04-15T14:39:07.096022083Z",
            "Path": "catalina.sh"
    
    #获取容器的ip地址
    docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称
    
    # docker inspect --format='{{.NetworkSettings.IPAddress}}' tomcat_test
    172.17.0.2

    #或者这样写,获取容器使用的网桥

    [root@localhost ~]# docker inspect -f {{.HostConfig.NetworkMode}} 262b42fb0c9f
    redis_default

    13.docker cp :用于容器与主机之间的数据拷贝.

    语法:

    docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
    docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
    OPTIONS说明:
    
    -L :保持源目标中的链接  

    实例:

    1.将主机/home/www目录拷贝到容器96f7f14e99ab的/www目录下

    docker cp /home/www 96f7f14e99ab:/www/

    2.将主机/home/www 目录拷贝到容器96f7f14e99ab中,目录重命名为www

    docker cp /home/www 96f7f14e99ab:/www

    3.将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中

    docker cp  96f7f14e99ab:/www /tmp/

    三、Docker删除容器与镜像

    1.停止所有的container,这样才能够删除其中的images:

    docker stop $(docker ps -a -q)
    

    如果想要删除所有container的话再加一个指令:

    docker rm $(docker ps -a -q)

    查看当前有些什么images

    docker images

    删除images,通过image的id来指定删除谁

    docker rmi <image id>

    想要删除untagged images,也就是那些id为的image的话可以用

    docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

    要删除全部image的话

    docker rmi $(docker images -q)

    强制删除全部image的话

    docker rmi -f $(docker images -q)
  • 相关阅读:
    设置ActiveMQ的访问密码
    Java NIO SocketChannel套接字通道
    Java 8 基础API的一些小的该进
    Java 8 异常该进
    Java NIO Channel to Channel Transfers通道传输接口
    Java NIO Scatter / Gather
    mysql分表经验总结
    Java 8 Optional类深度解析(转)
    Java 8 文件操作(转)
    使用 Java8 Optional 的正确姿势(转)
  • 原文地址:https://www.cnblogs.com/saneri/p/6178536.html
Copyright © 2011-2022 走看看