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参数

浙公网安备 33010602011771号