Docker镜像的常用命令
1.搜素镜像
docker search java
该表格包含五列:
-Name:镜像仓库名称
-DESCRIPTION:镜像仓库描述
-STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于GitHub的Stars
-OFFICAL:表示是否为官方仓库,该列标记为【OK】的镜像均由各软件的官方项目组创建和维护。
-AUTOMATED:表示是否是自动构建的镜像仓库
2.下载镜像
使用命令docker pull: docker pull java从Docker Hub下载最新的Java镜像
docker pull reg.itmuch.com/java:7指定想要下载的镜像标签以及Docker Registry地址,从地址下载标签为7的Java镜像
3.列出镜像
docker images列出已经下载的镜像
该表格包含了5列:
-REPOSITORY:镜像所属仓库名称
-TAG:镜像标签。默认是latest,表示最新
-IMAGE ID:镜像ID,表示镜像唯一标识
-CREATED:镜像创建时间
-SIZE:镜像大小
4.删除本地镜像
使用docker rmi命令即可删除指定镜像
exm: docker rmi hello-world
删除所有镜像
exm: docker rmi -f $(docker images)
-f表示强制删除
Docker容器的常用命令:
1.新建并启动容器:使用docker run即可新建并启动一个容器
该命令包含许多选项:
-d: 表示后台运行
-P: 随机端口映射
-p: 指定端口映射,有以下四种格式
- ip:hostPort:containerPort
- ip::containerPort
- hostPort:containerPort
- containerPort
--network:指定网络模式,该选项有以下可选参数:
- --network=bridge:默认选项,表示连接到默认的网桥。
- --network=host:容器使用宿主机的网络
- --network=container:NAME_or_ID:告诉Docker让新建的容器使用已有容器的网络配置
- --network=none:不配置该容器的网络,用户可自定义网络配置
exm: a.docker run java /bin/echo 'Hello World'
b.docker run -d -p 91:80 nginx 后台启动一个Nginx容器。-d后台运行,-p开放容器端口到宿主机端口
注意:docker run创建容器时,先检查本地是否存在,不存在的话会自动从Docker Hub下载镜像并启动一个Docker容器
2.列出容器
docker ps
如果需要列出所有容器(包含已停止的容器),可使用-a参数
该表格包含了7列:
-CONTAINER_ID:表示容器ID
-IMAGE:表示镜像名称
-COMMAND:表示容器启动时运行的命令
-CREATED:表示容器的创建时间
-STATUS:表示容器运行的状态。Up表示运行中,Exited表示已停止
-PORTS:表示容器对外的端口
-NAMES:表示容器名称。该名称默认由Docker自动生成,也可以使用docker run 命令的--name选项自行指定
3.停止容器
使用docker stop 容器ID/容器名称
4.强制停止容器
可以使用docker kill 命令发送SIGKILL信号来强制停止容器:docker kill 容器ID
5.启动已停止的容器
docker start 容器ID
6.重启容器
docker restart
7.进入容器
某场景下,可能需要进入运行中的容器
-使用docker attach命令进入
docker attach 784fd3b294d7.很多场景下,使用docker attach命令并不方便,当多个窗口同时attach到同一个容器时,所有窗口都会同步显示。同理,如果某个窗口发生阻塞,其它窗口无法
执行操作
-使用nsenter进入容器
nsenter工具包含在util-linux 2.23或更高版本中。为了连接到容器,需要找到容器第一个进程的PID,可通过以下命令获取:
docker inspect --format "{{.State.Pid}}" $CONTAINER_ID
获得PID后,就可以使用nsenter命令进入容器了:
nsenter --target "$PID" --mount --uts --ipc --net --pid
8.删除容器
使用docker rm 容器ID 命令即可删除指定容器
该命令只能删除已经停止的容器,如需删除正在运行的容器,可使用-f参数
删除所有容器:
docker rm -f $(docker ps -a -q)
参考:
1.http://itmuch.com/docker/docker-2/