docker入门

1、docker安装与启动

  • docker安装

    yum install docker

[root@VM_108_39_centos ~]# yum install docker
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
epel                                                                                                                                         | 3.2 kB  00:00:00     
extras                                                                                           
.....
Transaction Summary
====================================================================================================================================================================
Install  1 Package  (+18 Dependent packages)
Upgrade             (  2 Dependent packages)
​
Total download size: 24 M
Is this ok [y/d/N]: y  # 选择y
​
......
Dependency Updated:
  audit.x86_64 0:2.8.1-3.el7_5.1                                                 audit-libs.x86_64 0:2.8.1-3.el7_5.1                                                
​
Complete! # 安装成功

  • 查看docker版本

    docker -v


[root@VM_108_39_centos ~]# docker -v
Docker version 1.13.1, build 8633870/1.13.1
[root@VM_108_39_centos ~]# 

 

  • 启动与停止Docker

systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。

l 启动docker:systemctl start docker

l 停止docker:systemctl stop docker

l 重启docker:systemctl restart docker

l 查看docker状态:systemctl status docker

l 开机启动:systemctl enable docker

l 查看docker概要信息:docker info

l 查看docker帮助文档:docker --help

  • 配置 Docker

因为国内访问 Docker Hub 较慢, 可以使用腾讯云提供的国内镜像源, 加速访问 Docker Hub

依次执行以下命令


[root@VM_108_39_centos ~]# echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
[root@VM_108_39_centos ~]# systemctl daemon-reload
[root@VM_108_39_centos ~]# service docker restart
Redirecting to /bin/systemctl restart docker.service
[root@VM_108_39_centos ~]# 

 


2、docker镜像操作

  • 列出镜像

列出docker下的所有镜像:docker images


[root@VM_108_39_centos ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[root@VM_108_39_centos ~]# 

 

因为还没有安装镜像文件,所以列表为空。下面介绍一下各个字段表示的含义。

l REPOSITORY:镜像所在的仓库名称

l TAG:镜像标签

l IMAGE ID:镜像ID

l CREATED:镜像的创建日期(不是获取该镜像的日期)

l SIZE:镜像大小

l 这些镜像都是存储在Docker宿主机的/var/lib/docker目录下

  • 搜索镜像

docker search 镜像名称

NAME:仓库名称

DESCRIPTION:镜像描述

STARS:用户评价,反应一个镜像的受欢迎程度

OFFICIAL:是否官方

AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

  • 拉取镜像

docker pull 镜像名称


[root@VM_108_39_centos ~]# docker pull redis
Using default tag: latest
Trying to pull repository docker.io/library/redis ... 
sha256:481678b4b5ea1cb4e8d38ed6677b2da9b9e057cf7e1b6c988ba96651c6f6eff3: Pulling from docker.io/library/redis
f17d81b4b692: Pull complete 
b32474098757: Pull complete 
8980cabe8bc2: Pull complete 
2719bdbf9516: Pull complete 
f306130d78e3: Pull complete 
3e09204f8155: Pull complete 
Digest: sha256:481678b4b5ea1cb4e8d38ed6677b2da9b9e057cf7e1b6c988ba96651c6f6eff3
Status: Downloaded newer image for docker.io/redis:latest
[root@VM_108_39_centos ~]# docker images #通过该命令可以列出镜像
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis     latest              1babb1dde7e1        2 weeks ago         94.9 MB
[root@VM_108_39_centos ~]# 

 

  • 删除镜像

1、 docker rmi $IMAGE_ID:删除指定镜像

2、 docker rmi docker images -q:删除所有镜像

[root@VM_108_39_centos ~]# docker images
REPOSITORY         TAG                 IMAGE ID           CREATED             SIZE
docker.io/redis     latest             1babb1dde7e1        2 weeks ago         94.9 MB
[root@VM_108_39_centos ~]# docker rmi 1babb1dde7e1
Untagged: docker.io/redis:latest
Untagged: docker.io/redis@sha256:481678b4b5ea1cb4e8d38ed6677b2da9b9e057cf7e1b6c988ba96651c6f6eff3
Deleted: sha256:1babb1dde7e1fc7520ce56ce6d39843a074151bb192522b1988c65a067b15e96
Deleted: sha256:68f3c8e2388da48dd310e4642814feca68081445635716be58d7ebb69b611922
Deleted: sha256:b18dd54614f34239abc8a1165c90d5416a413d1f4c3c6711648e49e26e4445e7
Deleted: sha256:bf9efae34b1e94384b8cd011cf71591efab734b57961017bad608be56b7b1c9c
Deleted: sha256:7ae66985fd3a3a132fab51b4a43ed32fd14174179ad8c3041262670523a6104c
Deleted: sha256:bf45690ef12cc54743675646a8e0bafe0394706b7f9ed1c9b11423bb5494665b
Deleted: sha256:237472299760d6726d376385edd9e79c310fe91d794bc9870d038417d448c2d5
[root@VM_108_39_centos ~]# docker images
REPOSITORY         TAG                 IMAGE ID           CREATED             SIZE
[root@VM_108_39_centos ~]# docker rmi `docker images -q` #删除所有镜像

3、 docker 容器操作

1、新建并启动容器

使用以下docker run命令即可新建并启动一个容器,该命令是最常用的命令,它有很多选项,下面将列举一些常用的选项。-d选项:表示后台运行-P选项:随机端口映射-p选项:指定端口映射,有以下四种格式。--ip:hostPort:containerPort:映射指定地址的指定端口到容器的指定端口(不常用)如:127.0.0.1:3306:3306,映射本机的3306端口到容器的3306端口。--ip::containerPort:映射指定地址的任意端口到容器的指定端口。(不常用)如:127.0.0.1::3306,映射本机的3306端口到容器的3306端口。--hostPort:containerPort:映射本机的指定端口到容器的指定端口。(常用)如:3306:3306,映射本机的3306端口到容器的3306端口。--net选项:指定网络模式,该选项有以下可选参数:--net=bridge:默认选项,表示连接到默认的网桥。--net=host:容器使用宿主机的网络。--net=container:NAME-or-ID:告诉 Docker让新建的容器使用已有容器的网络配置。--net=none:不配置该容器的网络,用户可自定义网络配置。

docker run -d -p 90:80 nginx

这样就能启动一个 Nginx容器。在本例中,为 docker run添加了两个参数,含义如下:-d 后台运行-p 宿主机端口:容器端口 #映射宿主机端口91 到开放容器端口80

需要注意的是,使用 docker run命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该名称的镜像, Docker就会自动从 Docker Hub下载镜像并启动一个 Docker容器。

2 、列出容器 用 docker ps命令即可列出运行中的容器

docker ps

如需列出所有容器(包括已停止的容器),可使用-a参数。

该列表包含了7列,含义如下 - CONTAINER_ID:表示容器 ID。

  • IMAGE:表示镜像名称。

  • COMMAND:表示启动容器时运行的命令。

  • CREATED:表示容器的创建时间。

  • STATUS:表示容器运行的状态。UP表示运行中, Exited表示已停止。

  • PORTS:表示容器对外的端口号。

  • NAMES:表示容器名称。该名称默认由 Docker自动生成,也可使用 docker run命令的-- name选项自行指定。

3、停止容器 使用 docker stop命令,即可停止容器

docker stop 8b7575b38b36

[root@VM_108_39_centos ~]# docker stop 8b7575b38b36
8b7575b38b36
[root@VM_108_39_centos ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@VM_108_39_centos ~]#
​

 

其中8b7575b38b36是容器 ID,当然也可使用 docker stop容器名称来停止指定容器 。

4、启动已停止的容器

对于已停止的容器,可使用 docker start命令来启动

docker start f0b1c8ab3633


[root@VM_108_39_centos ~]# docker start 8b7575b38b36
8b7575b38b36
[root@VM_108_39_centos ~]# 

 

5、查看容器所有信息

[root@VM_108_39_centos ~]# docker inspect 8b7575b38b36

 

6、查看容器日志

[root@VM_108_39_centos ~]# docker container logs 8b7575b38b36

7、查看容器里的进程

[root@VM_108_39_centos ~]# docker top 8b7575b38b36
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                13675               13654               0                   16:22               ?                   00:00:00            nginx: master process nginx -g daemon off;
101                 13697               13675               0                   16:22               ?                   00:00:00            nginx: worker process
[root@VM_108_39_centos ~]# 

 


8、进入容器

使用docker container exec命令用于进入一个正在运行的docker容器。如果docker run命 令运行容器的时候,没有使用-it参数,就要用这个命令进入容器。一旦进入了容器,就可 以在容器的 Shell 执行命令了

[root@VM_108_39_centos ~]# docker container exec -it 8b7575b38b36 /bin/bash 
root@8b7575b38b36:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@8b7575b38b36:/#

 

9、删除容器

使用 docker rm命令即可删除指定容器

docker rm 8b7575b38b36

该命令只能删除已停止的容器,如需删除正在运行的容器,可使用-f参数

posted @ 2018-12-19 16:36  万山红遍  阅读(114)  评论(0)    收藏  举报