docker ps
docker ps -a
其中字符串为容器ID:
docker exec -it d27bd3008ad9 /bin/bash
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
docker search java
搜索出java 的docker镜像
docker pull node:latest
# 正常启动一个node容器
docker run -it node:latest /bin/bash
# 加参数 --name 表示启动一个名为node的容器
docker run --name node -it node /bin/bash
# -p 80:80:将容器的80端口映射到主机的80端口
docker run -p 80:80 --name mynginx -it node /bin/bash
docker images
镜像列表
删除<none>
这个镜像
# docker rmi <镜像ID>
docker rmi 3871
docker container prune
docker ps -aq
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
docker cp mycontainer:/opt/file.txt /opt/local/docker cp /opt/local/file.txt mycontainer:/opt/
更新 : @snakeliwei 的提醒, 现在的docker有了专门清理资源(container、image、网络)的命令。 docker 1.13 中增加了docker system prune
的命令,针对container、image可以使用docker container prune
、docker image prune
命令。
docker image prune --force --all
或者 docker image prune -f -a
: 删除所有不使用的镜像docker container prune
: 删除所有停止的容器Dockerfile
文件docker build -t showroow:v1 .
这条命令的意思是利用当前目录下的Dockerfile来创建一个叫做showroow
的镜像标签为v1
docker run -it my/python:v1 /bin/bash
docker commit -m="备注" 你的CONTAINER_ID 你的IMAGE
首先要在dockerhub仓库上新建仓库,如下图所示
image.png
创建好后,在命令提示符里登录
docker login
登录完后,把所需上传的容器变为镜像
docker commit containerId dockerUserName/XXX
注:containerId为你需要上传的容器id,dockerUserName为dockerHub的登录名,xxx为仓库名,当然也不一定非得是dockerUserName/xxx,只是为了方便起见
接下来为存在于本地的镜像打标签
docker tag imageName dockerUserName/xxx[:tag]
注:imageName为你需要上传的镜像name,dockerUserName为dockerHub的登录名,xxx为仓库名,必须和你在dockerhub中新建的仓库名相同,tag不指定就是latest
打包好之后,就把打包好的镜像上传
docker push dockerUserName/xxx[:tag]
注:tag不指定就是latest
最后就去dockerhub上查看是否上传成功
#查找Docker Hub上的镜像
$ docker search imageName/ID
#获取Docker Hub上的镜像
$ docker pull ImageName/ID
#显示本地主机上的镜像列表
$ docker images
#运行本地主机上的镜像
$ docker run ImageName/ID
#列出正在运行的容器
$ docker ps
#查看正在运行容器的网络端口映射情况
$ docker port ContainerID
#查看正在运行容器的内部正在进程运行
$ docker top ContainerID
#查看正在运行容器的内部底层信息
$ docker inspect ContainerID
#停止正在运行容器
$ docker stop ContainerID/
#重启已经停止的容器
$ docker start ContainerID
#删除不需要的容器(必须在容器已经停止的情况下)
$ docker rm ContainerimageID
#移除本地镜像,移除前需要把该镜像下所有的容器删除
$ docker rmi ImageName/ID
#登录docker
$ docker login
#运行ubuntu:16.04镜像并创建容器和启动bash终端
$ docker run -t -i ubuntu:16.04 /bin/bash
#重命名容器名
$ docker rename wonderful_kepler Ubuntu16.04
#构建镜像
$ docker commit -m="has update" -a="SpiffyEight77" ff5d623e2d61 spiffyeight77/ubuntu:16.04
#提交镜像到docker hub 需要登录
$ docker push spiffyeight77/ubuntu
部分参数说明 -d: 守护模式 后台运行 -p: 是容器内部端口绑定到指定的主机端口 -P: 是容器内部端口随机映射到主机的高端口 -f : 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出 -l : 查询最后一次创建的容器 -t : 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上 -i : 则让容器的标准输入保持打开 -m:提交的描述信息 -a: 指定镜像作者 --rm: 停止容器后移除容器 ff5d623e2d61: 容器ID spiffyeight77/ubuntu:16.04: 指定要创建的目标镜像名