[TOC]
一、安装
docker 具体安装步骤请参照 官方文档
查看 docker 版本
docker version
二、镜像
1.搜索镜像
docker search <搜索词>
搜索java相关镜像
docker search java
2.获取镜像
从 Docker Registry 获取镜像的命令是 docker pull <镜像名称[:TAG|@digest]>
,参数如下:
-
-a, --all-tags
:在仓库中下载所有标记的镜像
获取 ubuntu 镜像
# 获取最新的 ubuntu 镜像
docker pull ubuntu:latest
# TAG 默认是 latest
docker pull ubuntu
# 获取 ubuntu 16.04 镜像
docker pull ubuntu:16.04
3.列出镜像
列出已经下载的镜像命令是 docker images
,可选参数:
-
-a, --all
:列出所有镜像 (默认隐藏中间层镜像) -
--digests
:显示镜像的摘要信息 -
-f, --filter <filter>
:显示满足条件的镜像 -
--format <string>
:使用 Go 模板语法列出镜像 -
--no-trunc
:不截断输出,显示完整镜像信息 -
-q, --quiet
:只显示镜像 ID
如:列出本地已下载的镜像
docker images
4.删除镜像
使用 docker rmi <镜像名>
删除镜像
如:删除镜像 ubuntu 16.04
docker rmi ubuntu:16.04
三、容器
1.创建并启动容器
创建并启动容器的命令是 docker run
,它的参数有
-t
:让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-i
:附加到容器的标准输入(进入交互模式)
-d, --detach
:在后台启动容器
--name
:为容器指定一个名称
-P
:随机端口映射
-p
:指定端口映射。如 -p 8080:80
表示将宿主机的8080端口映射到容器的80端口
--net
:指定网络模式,该选项有以下可选参数
- --net=brige:默认选项,表示连接到默认的网桥
- --net=host:容器使用宿主机的网络(该模式下-p参数无效)
- --net=container:<容器名称或id>:让容器使用已有容器的网络配置
- --net=none:不使用该容器的网络,用户可以自定义网络配置
下命令表示启动一个nginx容器,容器名称为mynginx,并将宿主机的8080端口映射到容器的80端口
docker run -d -p 8080:80 --name=mynginx nginx
2.停止运行中的容器
使用 docker stop <容器名称或id>
停止一个运行中的容器。参数如下:
-
-t, --time <int>
:停止前等待的时间,默认为 10(单位:秒)
如:停止mynginx容器
docker stop mynginx
3.启动终止的容器
使用 docker start <容器名称或id>
启动一个已经停止的容器。参数如下
-
-a, --attach
:附加到容器的标准输出 -
-i
:附加到容器的标准输入(进入交互模式)
如:再次启动mynginx容器
docker start mynginx
4.重启容器
使用 docker restart <容器名称或id>
重启容器。参数如下:
-
-t, --time <int>
:停止前等待的时间,默认为 10(单位:秒)
如:重启mynginx容器
docker restart mynginx
5.进入容器
使用 docker exec -it <容器名称或id> /bin/bash
进入容器并启动bash,示例:
docker exec -it mynginx /bin/bash
6.删除容器
使用 docker rm <容器名称或id>
删除容器。参数如下:
-
-f, --force
:强制删除正在运行的容器(使用 SIGKILL) -
-l, --link
:删除指定的链接 -
-v, --volumes
:删除与容器关联的卷
如:删除mynginx容器
docker rm mynginx
删除所有处于终止状态的容器
docker rm $(docker ps -a -q)
四、文件传输
- 将容器文件拷贝至主机
docker cp <容器名称或id>:<容器中文件路径> <宿主机中目标路径>
如:将mynginx容器的 /tmp/test.json 文件拷贝到主机 ~/Desktop 目录
docker cp mynginx:/tmp/test.json ~/Desktop
- 将主机文件拷贝至容器
docker cp <文件路径> <容器名称或id>:<容器中文件目标路>
如:将主机的 ~/Desktop/foo.txt 文件拷贝至容器 mynginx 的 /var 目录
docker cp ~/Desktop/foo.txt mynginx:/var