docker 常用命令速记

windows 下使用的一些注意事项:

如果使用 windows 下运行 docker 所谓 “宿主机” 指的是你的 virtual-box 而不是你真正的物理机,如果你在 container 里面暴露的某个端口, 很可能在物理机上访问不到,你还需要在 virtual-box 层再做一次转发. 你通过 -v 指定的挂载目录必须是 virtual-box 中指定的共享目录之一,否则无效!!!__

查看 docker 相关信息

# 查看docker版本
$docker version

# 显示docker系统的信息
$docker info

Docker Hub 相关信息

# 登录docker Hub
docker login

# 登陆registry server;
# -e, --email="" Email;
# -p, --password="" Password;
# -u, --username="" Username
docker login --username=xxx@xxx.com registry.cn-hangzhou.aliyuncs.com

# 从 dockerhub 上拉取 centos 镜像 默认tag 是 latest
docker pull centos

image 的相关操作

# 检索 image
$docker search image_name

# 下载 image 到本地
$docker pull image_name

# 列出镜像列表;
# -a, --all=false Show all images; 
# --no-trunc=false Don't truncate output;
# -q, --quiet=false Only show numeric IDs
$docker images

# 删除一个或者多个镜像; 
# -f, --force=false Force;
# --no-prune=false Do not delete untagged parents
$docker rmi image_name

# 显示一个镜像的历史;
# --no-trunc=false Don't truncate output;
# -q, --quiet=false Only show numeric IDs
$docker history image_name

# 删除指定镜像
docker rmi <image_name>  

# 删除所有镜像
docker rmi $(docker images -q)

container(沙箱容器)相关 .

# 已交互式方式 启动一个容器
docker run -it  <image_name>  /bin/bash

# 将容器的 80 映射到本机的 8080
docker run -p 127.0.0.1:8080:80 <image_name>  /bin/bash

# 将容器的 1000-1020 这 20 个端口批量映射到 映射到本机的 1000-1020
docker run -p 1000-1020:1000-1020  <image_name>  /bin/bash

# 将物理机的 /c/Users/myname/cent32 映射到容器的 /mnt 但要注意物理机目录必须是 vm 的共享目录。
docker  run -it -v /c/Users/myname/cent32:/mnt  <container_name>  /bin/bash

#查看 容器的 5000 端口上绑定的本机端口是什么
docker port <container_name> 5000

# 启动容器以后台方式运行(更通用的方式):
docker run -d -it  <image_name>

# 进入容器
docker attach <container_name>

# 在容器内运行某程序
docker exec -ti  <container_name>  /bin/bash

# 启动 从启 关闭 一个容器
docker start|stop|restart  <container_name>

# 删除指定容器
docker rm <container_name>

# 删除所有容器
docker rm `docker ps -a -q`  

容器固化(container 固化成 image)

# 固化 <container_name>  携带版本信息
docker save <container_name> > /home/save.tar

# 从save的 tar中还原
docker load < /home/save.tar

# 固化 <container_name>  不携带版本信息
docker export <container_name> > /home/save.tar

# 从export的 tar中还原
docker import  /home/save.tar

# 固化当前container的修改
docker commit -m "comment" -a "author" <container_name>  用户名/输出的镜像名:tag

# 构建自定义镜像
docker build -t <image_name> <dockerfile>

与宿主间通信

# 内外层之间copy文件
docker cp foo.txt mycontainer:/foo.txt
docker cp mycontainer:/foo.txt foo.txt

# 用-v挂载主机数据卷到容器内
docker run -v /path/to/hostdir:/mnt <container_name>
## 在容器内拷贝  
cp /mnt/sourcefile /path/to/destfile  

更多文档 https://docs.docker.com/engine/reference/commandline/cli/

留言:

称呼:*

邮件:

网站:

内容: