zoukankan      html  css  js  c++  java
  • docker入门教程(二)基础命令

    1.配置docker加速器

    由于Docker Hub 的服务器在国外,下载镜像会比较慢。幸好DaoCloud为我们提供了免费的国内镜像服务

    [root@docker docker]# tee /etc/docker/daemon.json <<- 'EOF'
    {
      "registry-mirrors": ["https://registry.docker-cn.com"]
    }
    EOF

    1.11启动第一个容器

    1.为什么要端口映射?
    在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口。
    
    2.端口映射的指令是什么?
    docker指令:docker run -p ip:hostPort:containerPort redis
    
    使用-p参数会分配宿主机的端口映射到虚拟机。 
    IP表示主机的IP地址。 
    hostPort表示宿主机的端口。 
    containerPort表示虚拟机的端口。
    docker run -d -p  1111:80 nginx
    
    run 创建并运行一个容器
    
    -d   后台运行
    
    -p  端口映射   指定容器的80端口映射到主机上的1111端口  这表示可以利用主机ip地址加1111端口访问80    -p hostPortcontainerPort

    nginx 镜像名称

    [root@docker1 ~]# curl -I 10.0.0.11:1111
    HTTP/1.1 200 OK
    Server: nginx/1.13.12
    Date: Tue, 29 May 2018 11:37:34 GMT
    Content-Type: text/html
    Content-Length: 612
    Last-Modified: Mon, 09 Apr 2018 16:01:09 GMT
    Connection: keep-alive
    ETag: "5acb8e45-264"
    Accept-Ranges: bytes

    [root@docker1 ~]# netstat -lntup|grep 1111
    tcp6       0      0 :::1111                 :::*                    LISTEN      2918/docker-proxy

    1.12docker-镜像基础操作

    1.查看镜像列表  docker image ls  or docker images

    [root@docker1 ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest ae513a47849c 3 weeks ago 109MB centos latest ff426288ea90 4 months ago 207MB
    2.搜索镜像
    docker search 镜像名
    [root@docker1 ~]# docker search nginx
    NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
    nginx                                                  Official build of Nginx.                        8564                [OK]                
    jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker con…   1335                                    [OK]
    richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable of…   547                                     [OK]
    3.下载镜像 docker pull  镜像name
    4.删除镜像
    docker image rm nginx:latest            ###nginx是镜像名 latest是版本
    或者
    docker rmi nginx:latest
    5.导出镜像
    docker image save nginx >docker-nginx.tar.gz  ##导出nginx镜像到当前目录,并命名为docker-nginx.tar.gz 
    [root@docker1 ~]# docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    gitlab/gitlab-ce    latest              e420c3fac3e3        7 days ago          1.39GB
    nginx               latest              ae513a47849c        10 days ago         109MB
    [root@docker1 ~]# docker image save nginx >docker-nginx.tar.gz
    [root@docker1 ~]# ls -lh
    total 108M
    -rw-r--r--  1 root root 108M May 11 00:58 docker-nginx.tar.gz
    
    6.导入镜像
    [root@docker1 ~]# ls
    docker-nginx.tar.gz
    [root@docker1 ~]# docker image load -i docker-nginx.tar.gz
    d626a8ad97a1: Loading layer [==================================================>]  58.46MB/58.46MB
    82b81d779f83: Loading layer [==================================================>]  54.21MB/54.21MB
    7ab428981537: Loading layer [==================================================>]  3.584kB/3.584kB
    Loaded image: nginx:latest
    [root@docker1 ~]# docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    gitlab/gitlab-ce    latest              e420c3fac3e3        7 days ago          1.39GB
    nginx               latest              ae513a47849c        10 days ago         109MB
    7.显示镜像详细信息
    docker image inspect
    [root@docker1 ~]# docker image inspect nginx
    

     1.13 docker-容器基础操作

    1.查看处于启动状态的容器   ps:container(容器)
    docker ps                    或者docker container ls
    [root@docker1 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
    8dc2f174d51f        nginx:latest        "nginx -g 'daemon of…"   5 minutes ago       Up 5 minutes        0.0.0.0:8080->80/tcp   boring_hoover
    [root@docker1 ~]# docker container ls
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
    8dc2f174d51f        nginx:latest        "nginx -g 'daemon of…"   5 minutes ago       Up 5 minutes        0.0.0.0:8080->80/tcp   boring_hoover
    
    2.查看处于启动和停止(退出)状态的容器
    docker ps -a   
    [root@docker1 ~]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                  NAMES
    8dc2f174d51f        nginx:latest        "nginx -g 'daemon of…"   17 minutes ago      Up 17 minutes               0.0.0.0:8080->80/tcp   boring_hoover
    5102e4c9c684        nginx:latest        "nginx -g 'daemon of…"   19 minutes ago      Exited (0) 12 minutes ago                          goofy_brahmagupta
    3.查看容器ip地址
    docker container inspect   CONTAINER ID   或者           docker container inspect  'NAMES(容器名)’
    例:
    [root@docker1 ~]# docker ps  ##先查看容器
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
    8dc2f174d51f        nginx:latest        "nginx -g 'daemon of…"   24 minutes ago      Up 24 minutes       0.0.0.0:8080->80/tcp   boring_hoover
    
    docker container inspect 8dc2f174d51f  或者docker container inspect boring_hoover
    4.停止一个容器
    docker container stop CONTAINER ID
    或者
    docker container kill CONTAINER ID
    5.删除一个容器  ps:只有先停止才可以删除
    docker container rm CONTAINER ID
    6.查看容器日志
    docker container logs CONTAINER ID [root@docker1
    ~]# docker container logs 8dc2f174d51f 10.0.0.11 - - [29/May/2018:14:32:55 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.29.0" "-"
    7.杀死所有正在运行的容器
    docker ps -a -q  ##只显示容器id号
    然后
    docker container stop  $(docker ps -a -q) 或者docker container kill $(docker ps -a -q)
    8.进入容器:docker exec -it CONTAINER ID
    [root@docker1 ~]# docker exec -it 8dc2f174d51f /bin/bash
    root@8dc2f174d51f:/# 
    
    ps:
    -it: 
    -i:交互式   
    -t:分配一个终端

    ps:其他进入容器方法请看下篇文章
  • 相关阅读:
    Django REST framework 1
    爬虫基本原理
    QueryDict对象
    Django组件ModelForm
    MongoDB
    Algorithm
    BOM
    CSS
    Vue
    AliPay
  • 原文地址:https://www.cnblogs.com/mclzy/p/9090140.html
Copyright © 2011-2022 走看看