搜索镜像
网页搜索
命令搜索
docker search xx
输出列含义如下:
- NAME:镜像仓库名称。
- DESCRIPTION:镜像仓库描述。- STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub的 stars0
- OFFICAL:表示是否为官方仓库,该列标记为[0K]的镜像均由各软件的官方项目组创建和维
护。 - AUTOMATED:表示是否是自动构建的镜像仓库。
下载镜像
docker pull <镜像名:tag> docker pull centos 下载centos镜像 docker pull <镜像名:tag>:latest 下载最新版本 docker pull <镜像名:tag>:5.7 下载指定版本
查看已下载镜像
docker images
说明:
- -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
- –digests :显示镜像的摘要信息;
- -f :显示满足条件的镜像;
- –format :指定返回值的模板文件;
- –no-trunc :显示完整的镜像信息;
- -q :只显示镜像ID。
输出列含义如下
- REPOSITORY:镜像所属仓库名称。
- TAG:镜像标签。默认是 latest,表示最新。
- IMAGE ID:镜像 ID,表示镜像唯一标识。
- CREATED:镜像创建时间。
- SIZE: 镜像大小。
docker exec -ti percona mysql -u root -p
OPTIONS说明:
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
查看容器日志
docker logs -f <容器名 or ID>
docker container <容器名 or ID>
查看容器所有信息
docker inspect <容器名 or ID>
查看容器里的进程
docker top <容器名 or ID>
查看正在运行的容器
docker ps
说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
–format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
–no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
如需列出所有容器(包括已停止的容器),可使用-a参数。该列表包含了7列,含义如下
- CONTAINER_ID:表示容器 ID。
- IMAGE:表示镜像名称。
- COMMAND:表示启动容器时运行的命令。
- CREATED:表示容器的创建时间。
- STATUS:表示容器运行的状态。UP表示运行中, Exited表示已停止。
- PORTS:表示容器对外的端口号。- NAMES:表示容器名称。该名称默认由 Docker自动生成,也可使用 docker run命令的–name选项自行指定。
查看所有的容器,包括已经停止的。
具体参数参考上一个命令解释
docker ps -a
查看容器ip
docker inspect 容器ID | grep IPAddress
查看所有容器ip
docker inspect -f='{{.NetworkSettings.IPAddress}}' $(sudo docker ps -a -q)
列出所有容器对应的名称,端口,及ip
docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq)
查看docker name
docker inspect -f='{{.Name}}' $(sudo docker ps -a -q)
新建并启动一个容器
docker run -d <Other Parameters>
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
说明:
- -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- –p: 端口映射,格式为:主机(宿主)端口:容器端口
- t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- –name=”nginx-lb”: 为容器指定一个名称;
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h “mars”: 指定容器的hostname;
- -e username=”ritchie”: 设置环境变量;
- –env-file=[]: 从指定文件读入环境变量;
- –cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行;
- -m :设置容器使用内存最大值;
- –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- –link=[]: 添加链接到另一个容器;
- –expose=[]: 开放一个端口或一组端口;
进入容器
使用docker exec命令用于进入一个正在运行的docker容器。如果docker run命令运行容器的时候,没有使用-it参数,就要用这个命令进入容器。一旦进入了容器,就可以在容器的 Shell执行命令了
docker exec -it <ID> /bin/bash
删除本地一个或多少镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS说明:
-f :强制删除;
–no-prune :不移除该镜像的过程镜像,默认移除;
删除容器
该命令只能删除已停止的容器,如需删除正在运行的容器,可使用-f参数
docker rm <容器名 or ID>
说明:
- -f :通过SIGKILL信号强制删除一个运行中的容器
- -l :移除容器间的网络连接,而非容器本身
- -v :-v 删除与容器关联的卷
删除所有容器
docker rm $(docker ps -a -q)
停止、启动、杀死指定容器
使用docker run命令,即可新建并启动一个容器。对于已停止的容器,可使用 docker start命令来启动
docker start <容器名 or ID> # 启动容器 docker stop <容器名 or ID> # 启动容器 docker kill <容器名 or ID> # 杀死容器
重启docker服务
service docker restart
在运行的容器中执行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
说明:
- -d :分离模式: 在后台运行
- -i :即使没有附加也保持STDIN 打开
- -t :分配一个伪终端
暴露端口: 一共有三种形式进行端口映射
- 映射本机3306端口到容器的3306端口 docker -p 127.0.0.1:3306:3306
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口
- 映射本机的随机可用端口到容器3306端口 docker -p 127.0.0.1::3306
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口
- 映射本机的3306端口到容器的3306端口 docker -p 3306:3306
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口
映射数据卷
docker -v /home/data:/opt/data # 这里/home/data 指的是宿主机的目录地址,后者则是容器的目录地址
build 命令用于使用 Dockerfile 创建镜像
docker build [OPTIONS] PATH | URL | -
OPTIONS说明:
–build-arg=[] :设置镜像创建时的变量;
–cpu-shares :设置 cpu 使用权重;
–cpu-period :限制 CPU CFS周期;
–cpu-quota :限制 CPU CFS配额;
–cpuset-cpus :指定使用的CPU id;
–cpuset-mems :指定使用的内存 id;
–disable-content-trust :忽略校验,默认开启;
-f :指定要使用的Dockerfile路径;
–force-rm :设置镜像过程中删除中间容器;
–isolation :使用容器隔离技术;
–label=[] :设置镜像使用的元数据;
-m :设置内存最大值;
–memory-swap :设置Swap的最大值为内存+swap,”-1”表示不限swap;
–no-cache :创建镜像的过程不使用缓存;
–pull :尝试去更新镜像的新版本;
–quiet, -q :安静模式,成功后只输出镜像 ID;
–rm :设置镜像成功后删除中间容器;
–shm-size :设置/dev/shm的大小,默认值是64M;
–ulimit :Ulimit配置。
–tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
–network: 默认 default。在构建期间设置RUN指令的网络模式