-d - 后台分离模式运行容器-p 80:80 - 将宿主机的 80 端口映射到容器的 80 端口docker/getting-started - 所使用的镜像名称在前台(交互模式)创建并运行容器
$ docker run -it -p 8001:8080 --name my-nginx nginx
-it - 开启交互式终端模式-p 8001:8080 - 将宿主机的 8001 端口映射到容器的 8080 端口--name my-nginx - 指定容器自定义名称nginx - 所使用的镜像名称| 命令示例 | 常用功能说明 |
|---|---|
docker ps |
列出正在运行的容器 |
docker ps -a |
列出所有容器(包括已停止的) |
docker ps -s |
列出运行中的容器并显示 CPU / 内存占用 |
docker images |
列出本地所有镜像 |
docker exec -it <container> bash |
进入/连接到正在运行的容器交互终端 |
docker logs <container> |
查看容器控制台输出日志 |
docker stop <container> |
停止指定容器 |
docker restart <container> |
重启指定容器 |
docker rm <container> |
删除指定容器 |
docker port <container> |
查看容器的端口映射关系 |
docker top <container> |
查看容器内部运行的进程 |
docker kill <container> |
强制杀死指定容器 |
参数 <container> 可以是容器 ID 或容器名称
| 常用命令 | 功能说明 |
|---|---|
docker start my-nginx |
启动容器 |
docker stop my-nginx |
停止容器 |
docker restart my-nginx |
重启容器 |
docker pause My-nginx |
暂停容器运行 |
docker unpause my-nginx |
恢复暂停的容器 |
docker wait my-nginx |
阻塞等待容器停止并返回退出状态码 |
docker kill my-nginx |
向容器发送 SIGKILL 强制终止 |
docker attach my-nginx |
附加到已存在的运行容器 |
| 命令示例 | 功能说明 |
|---|---|
docker ps |
列出正在运行的容器 |
docker ps -a |
列出所有容器 |
docker logs my-nginx |
查看容器日志 |
docker inspect my-nginx |
查看容器详细元数据配置 |
docker events my-nginx |
实时获取容器事件信息 |
docker port my-nginx |
查看容器映射的公开端口 |
docker top my-nginx |
查看容器正在运行的进程列表 |
docker stats My-nginx |
实时查看容器 CPU/内存/网络资源占用 |
docker diff my-nginx |
检查容器文件系统的变更列表 |
docker create [options] IMAGE
-a, --attach # 附加标准输入/输出/错误
-i, --interactive # 交互模式 (stdin)
-t, --tty # 分配伪终端
--name NAME # 为容器指定名称
-p, --publish 5000:5000 # 端口映射 (宿主机:容器)
--expose 5432 # 暴露端口给容器网络
-P, --publish-all # 随机映射所有暴露的端口
--link container:alias # 容器间别名连接
-v, --volume `pwd`:/app # 挂载数据卷 (需绝对路径)
-e, --env NAME=hello # 环境变量设置
创建示例
$ docker create --name my_redis --expose 6379 redis:3.0.2
重命名容器
docker rename my-nginx my-nginx-new
删除容器
docker rm my-nginx
更新容器资源配置限制
docker update --cpu-shares 512 -m 300M my-nginx
命令示例 |
功能说明 |
|---|---|
docker images |
列出本地镜像 |
docker rmi nginx |
删除本地镜像 |
docker load < ubuntu.tar.gz |
从归档文件加载镜像 |
docker load --input ubuntu.tar |
从归档文件加载镜像 |
docker save busybox > ubuntu.tar |
将镜像保存为 tar 归档文件 |
docker history |
查看镜像构建历史层记录 |
docker commit nginx |
从容器改动创建新镜像 |
docker tag nginx eon01/nginx |
为镜像打标签 |
docker push eon01/nginx |
推送镜像到镜像仓库 (Registry) |
$ docker build .
$ docker build github.com/creack/docker-firefox
$ docker build - < Dockerfile
$ docker build - < context.tar.gz
$ docker build -t eon/my-nginx .
$ docker build -f myOtherDockerfile .
$ curl example.com/remote/Dockerfile | docker build -f - .
删除指定网络
docker network rm MyOverlayNetwork
列出所有网络
docker network ls
查看网络的详细信息
docker network inspect MyOverlayNetwork
将运行中的容器连接到网络
docker network connect MyOverlayNetwork nginx
启动容器时直接连接指定网络
docker run -it -d --network=MyOverlayNetwork nginx
断开容器与网络的连接
docker network disconnect MyOverlayNetwork nginx
docker network create -d overlay MyOverlayNetwork
docker network create -d bridge MyBridgeNetwork
docker network create -d overlay \
--subnet=192.168.0.0/16 \
--subnet=192.170.0.0/16 \
--gateway=192.168.0.100 \
--gateway=192.170.0.100 \
--ip-range=192.168.1.0/24 \
--aux-address="my-router=192.168.1.5" \
--aux-address="my-switch=192.168.1.6" \
--aux-address="my-printer=192.170.1.5" \
--aux-address="my-nas=192.170.1.6" \
MyOverlayNetwork
清理无主 (dangling) 镜像、停止的容器、未使用的网络与卷
docker system prune
清理包括所有未使用的镜像(不只是 dangling 镜像)和所有已停止的容器
docker system prune -a
停止所有运行中的容器
docker stop $(docker ps -a -q)
删除所有已停止的容器
docker container prune
清理无标签且未被容器引用的悬挂镜像:
docker image prune
清理所有未被当前容器使用的镜像:
docker image prune -a
删除未被任何容器使用的卷
docker volume prune
| Docker 语法 | 功能说明 |
|---|---|
docker search search_word |
在 Docker Hub 上搜索镜像 |
docker pull user/image |
从 Docker Hub 下载镜像 |
docker login |
登录镜像仓库 (Docker Hub) |
docker push user/image |
上传镜像到 Docker Hub |
登录镜像仓库
$ docker login
$ docker login localhost:8080
登出镜像仓库
$ docker logout
$ docker logout localhost:8080
搜索镜像
$ docker search nginx
$ docker search nginx --stars=3 --no-trunc busybox
拉取镜像
$ docker pull nginx
$ docker pull eon01/nginx localhost:5000/myadmin/nginx
推送镜像
$ docker push eon01/nginx
$ docker push eon01/nginx localhost:5000/myadmin/nginx
| 命令示例 | 功能说明 |
|---|---|
docker stop -f $(docker ps -a -q) |
强制停止所有容器 |
docker rm -f $(docker ps -a -q) |
强制删除所有容器 |
docker rmi -f $(docker images -q) |
强制删除所有镜像 |
查看数据卷列表
$ docker volume ls
清理无用数据卷
$ docker volume prune