Docker(二)--安装及常用命令

1.安装配置

实现环境:

~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
~]# uname -r
3.10.0-862.el7.x86_64

注:由于在内核2.6版本后才支持docker,请使用内核版本高于2.6的系统搭建。

1.1 版本选择

yum安装的是1.13版本,我们这儿选择较新版本安装。

~]# yum list docker
...
docker.x86_64    2:1.13.1-75.git8633870.el7.centos      extras

~]# wget -c -P /etc/yum.repos.d/ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
~]# vim /etc/yum.repos.d/docker-ce.repo
:%[email protected]@mirrors.tuna.tsinghua.edu.cn/docker-ce#g    #批量替换

注:因为下载的repo文件中提供的地址是docker官网,下载速度很慢,这儿替换为清华的docker镜像。也可以直接下载某个版本的rpm包进行安装。

1.2 镜像加速

由于默认镜像仓库dockerhub在国外,设置镜像加速加快访问,可添加多个,用","隔开。且配置文件默认不存在,需要手动创建。国内镜像加速站点有很多,这儿使用docker cn。

~]# mkdir /etc/docker/daemon.json
{
        "registry-mirrors":["https://registry.docker-cn.com"]
}

1.3 安装docker

~]# yum install -y docker-ce     
~]# systemctl start docker

注:最新版本使用docker-ce ,默认直接yum docker即可。

查看版本信息:

~]# docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:23:03 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:25:29 2018
  OS/Arch:          linux/amd64
  Experimental:     false

2.基础命令

docker在较新版本中引入了一类管理命令,但仍兼容了以前版本的命令,具体可help查看,以下仍使用老版本的命令。

镜像操作:

 1.拉取镜像

Usage:
    docker pull [registry][:port]/[namespace/]<name>[:tag]
    
    registry   :使用什么镜像仓库,默认为dockerhub。
    port       :镜像仓库端口
    namespace  :不填写,默认为官方提供的镜像
    name       :镜像名称,必填
    tag        :标签,默认为latest(最新)
示例:
    docker pull busybox     #拉取最新的busybox镜像

2.查看镜像

Usage:
    docker images [options] [repository[:tag]]
示例:
     docker images      #查看本机所有镜像

 3.删除镜像

Usage:
    docker rmi [options] image [image...]
示例:
    docker rmi busybox:latest     #删除本机busybox:latest 镜像
    docker rmi -f busybox:latest  #强制删除,即有容器在使用也删除该镜像

4.镜像标签

Usage:
    docker tag [options] image[:tag] [registryhost/][username/]name[:tag]
示例:
    docker tag nginx:latest test/web:v0.1    #标记本地镜像,将其归入某一仓库。

5.镜像导出

Usage:
    docker save [options] image [image...]
示例:
    docker save -o /tmp/nginx-latest.tar.gz nginx:latest      #将镜像导出到本地/tmp目录下

6.镜像导入

Usage:
    docker load [options] image [image...]
示例:
    docker load -i /tmp/nginx-latest.tar.gz    #将本地镜像文件导入

7.查看镜像信息

Usage:
    docker inspect [OPTIONS] NAME|ID [NAME|ID...]
示例:
    docker inspect nginx    #查看nginx镜像信息

容器操作:

容器操作图示:

1.运行容器

Usage:
    docker run [options] image [command] [arg...]

options:
    -a  : 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
    -d  : 后台运行容器,并返回容器ID
    -i  : 以交互模式运行容器,通常与 -t 同时使用
    -p  : 端口映射,格式为:主机(宿主)端口:容器端口
    -P  : 开启镜像所有端口随机映射要宿主机
    -t  : 为容器重新分配一个伪输入终端,通常与 -i 同时使用
    -h  : 指定容器的hostname
    -e  : username="ritchie" 设置环境变量
    -m  : 设置容器使用内存最大值
    -v  : 绑定挂载目录
    --name     : --name="nginx-lb" 为容器指定一个名称
    --dns      : --dns=8.8.8.8 指定容器使用的DNS服务器,默认和宿主一致
    --dns-search : 指定容器DNS搜索域名,默认和宿主一致
    --env-file : 从指定文件读入环境变量;
    --cpuset   : --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
    --net      : --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container 四种类型
    --link     : 添加链接到另一个容器
    --expose   : 开放一个端口或一组端口

示例: 
    使用镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。 
    docker run --name mynginx -d nginx:latest    

    使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
    docker run --name mynginx -P -d nginx:latest

    使用镜像nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 8080 端口,
    主机的目录 /usr/data 映射到容器的 /data。
    docker run --name mynginx -p 127.0.0.1:8080:80 -v /usr/data:/data

    使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
    docker run --name mynginx -it nginx:latest /bin/bash 

2.创建容器

Usage:
    docker create [options] image [command] [arg...]
示例:
    docker create --name mynginx nginx:latest     #创建容器但不运行

3.启动容器

Usage:
    docker start [options] container  [container...] 
示例:
    docker start mynginx

4.停止容器

Usage:
    docker stop [options] container  [container...] 
示例:
    docker stop mynginx

5.重启容器

Usage:
    docker restart [options] container  [container...] 
示例:
    docker restart mynginx

6.杀掉容器

Usage:
    docker kill [options] container [container...]

options:
    -s :向容器发送一个信号

示例:
    docker kill -s KILL mynginx    #杀掉运行中的容器mynginx 

7.暂停容器

Usage:
    docker pause [options] container [container...]
示例:
    docker pause mynginx      #暂停容器中所有的进程。

8.恢复容器

Usage:
    docker unpause [options] container [container...]
示例:
    docker unpause mynginx      #恢复容器中所有的进程。

9.删除容器

Usage:
    docker rm [options] container [container...]

options:
    -f :通过SIGKILL信号强制删除一个运行中的容器
    -l :移除容器间的网络连接,而非容器本身
    -v :删除与容器关联的卷

示例:
    docker rm mynginx        #删除mynginx容器,但容器在运行则删除失败
    docker rm -f mynginx     #强制删除容器,运行中容器也能删除

10.查看容器

Usage:
    docker ps [options]

options:
    -a :显示所有的容器,包括未运行的。
    -f :根据条件过滤显示的内容。
    -l :显示最近创建的容器。
    -n :列出最近创建的n个容器。
    -q :静默模式,只显示容器编号。
    -s :显示总的文件大小。
    --format   :指定返回值的模板文件。
    --no-trunc :不截断输出。

示例:    
    docker ps        #查看所有运行中的容器
    docker ps -a     #查看所有容器,未运行的也显示
    docker ps -n 5   #查看最近创建的5个容器
    docker ps -a -q  #显示所有容器编号

11.容器信息查询

Usage:
    docker inspect [options] container | ID 

options:
    -f :指定返回值的模板文件。
    -s :显示总的文件大小。
    --type :为指定类型返回JSON。

示例:
    docker inspect mynginx
    docker inspect -f {{.NetworkSettings.IPAddress}} mynginx          #显示ip,使用go模板
                                                                      #"."表示根,NetworkSettings段下的IPAddress信息,从inspect信息中提取

12.容器运行进程信息

Usage:
    dokcer top [options] container [ps options]
示例:
    docker top mynginx

13.获取容器日志

Usage:
    docker logs [options] container

options:
    -f : 跟踪日志输出
    -t : 显示时间戳
    --since :显示某个开始时间的所有日志
    --tail  :仅列出最新N条容器日志

示例:
    docker logs -f mynginx
    docker logs --since="2018-08-01" --tail=10 mynginx

14.查看端口映射

Usage:
    docker port [options] container [private_port[/proto]]
示例:
    docker port mynginx      #查看mynginx容器开放的端口,前提是容器要开放端口才能查看到

15.容器与宿主机文件拷贝

Usage:
    docker cp [options] container:src_path dest_path
    docker cp [options] src_path container:dest_path
示例:
    docker cp mynginx:/usr  /tmp/     #将容器中的/usr目录拷贝到宿主机/tmp/下   

  16.进入容器

Usage:
    docker exec [options] container command [arg...]

options:
    -d: 以后台方式执行命令
    -e: 设置环境变量
    -i: 交互模式
    -t: 设置TTY
    -u: 用户名或UID,例如myuser:myusergroup

示例:
    docker exec -it mynginx sh       #开启一个交互模式的终端

更多命令参考:http://www.runoob.com/docker/docker-command-manual.html

猜你喜欢

转载自blog.csdn.net/rightlzc/article/details/83018295