docker系列(3)-Docker的常用命令
1.帮助命令
操作 | 指令 |
---|---|
查看Docker版本 | docker version |
查看docker概要信息 | docker info |
查看docker帮助文档 | docker --help |
2. 镜像命令
2.1 搜索镜像
网站:https://hub.docker.com
-
如果需要在网络中查找需要的镜像,可以通过以下命令搜索
docker search 某个XXX镜像名字
-
例如:要下载centos镜像
docker search centos
-
NAME:镜像名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
- OPTIONS说明
–no-trunc : 显示完整的镜像描述
-s : 列出收藏数不小于指定值的镜像。
–automated : 只列出 automated build类型的镜像;
2.2 拉取镜像
docker pull 镜像名字
2.3 查看镜像
docker images [OPTIONS]
REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像id
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
OPTIONS说明: |
---|
-a :列出本地所有的镜像(含中间映像层) |
-q :只显示镜像ID。 |
–digests :显示镜像的摘要信息 |
–no-trunc :显示完整的镜像信息 |
2.4 删除镜像
- 删除单个镜像
docker rmi -f 镜像ID
- 删除多个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG
- 删除全部
docker rmi -f $(docker images -qa)
3 容器命令
有镜像才能创建容器,这是根本前提(下载一个CentOS镜像演示)
3.1 查看容器
- 查看正在运行的容器
docker ps
- 查看所有容器
docker ps -a
- 查看最后一次运行的容器
docker ps -l
- 查看停止的容器
docker ps -f status=exited
3.2 创建与启动容器
- 创建容器的命令:
docker run [options]
-
OPTIONS说明(常用):有些是一个减号,有些是两个减号
–name=“容器新名字”: 为容器指定一个名称;
-d: 在run后面加上参数-d,会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i-t两个参数,创建后会自动进入容器),并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:表示容器启动后会进入其命令行,为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-p: 表示端口映射 有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort 前者表示宿主机端口,后者是容器内的映射端口,可以使用多个-p做多个端口映射
-
启动交互式容器
docker run -it --name=centos 镜像名称:标签 /bin/bash
或者
docker run -it --name=mycentos centos:latest /bin/bash
/bin/bash的作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。
-
退出当前容器
exit
-
守护式方式创建容器:
#格式:
docker run -di --name=容器名称 镜像名称:标签
#登录守护式容器方式:
docker exec -it 容器名称(或者容器id) /bin/bash
什么是守护式容器:
能够长期运行
没有交互式会话
适合运行应用程序和服务
3.3 停止与启动容器
-
停止容器
docker stop 容器名称(或者容器id)
docker stop mycentos2
-
启动容器
docker start 容器名称(或者容器id)
docker start mycentos2
-
重启容器
docker restart 容器名称(或者容器id)
docker restart mycentos2
-
强制停止容器
docker kill 容器名称(或者容器id)
docker kill mycentos2
3.4 文件拷贝
如果需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或者目录 容器名称:容器目录
docker cp /tmp/anaconda.log mycentos2:/tmp
docker exec -it mycentos2 /bin/bash
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或者目录
docker cp mycentos2:/tmp /export/
3.5 目录挂载
可以在创建容器的时候,将宿主机的目录和容器内的目录进行映射,这样就可以通过修改宿主机的某个目录的文件从而去影响容器
创建容器添加-v参数,后边为宿主机目录:容器目录,例如:
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:latest
docker exec -it mycentos3 /bin/bash
ls /usr/local/myhtml/
cp /export/tmp/anaconda.log /usr/local/myhtml/
docker exec -it mycentos3 /bin/bash
如果共享的是多级的目录,可能会出现权限不足的提示。
这是因为Centos7中的安全模块selinux把权限禁掉了,我们需要添加参数–privileged=true来解决挂载的目录没有权限的问题?
docker run -di --privileged=true -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:latest
3.6 删除容器
-
删除指定的容器:
docker rm 容器名称(容器ID) docker stop mycentos3 docker rm mycentos3
3.7查看容器ip地址
- 可以通过以下命令查看容器运行的各种数据
docker inspect 容器名称(容器id)
docker inspect mycentos3
- 也可以直接执行下面的命令直接输出IP地址
docker inspect --format=’{{.NetworkSettings.IPAddress}}’ 容器名称(容器id)
docker inspect --format=’{{.NetworkSettings.IPAddress}}’ mycentos3