Docker cheatsheet

Mainly summarized from docker for beginners. So very simple

Docker概念

  • 镜像(Image):
    相当于蓝图,是构建的容器的基础。docker pull下载的就是镜像。
  • 容器(Container):
    实例化的镜像,docker run创建的就是容器
  • Docker守护进程(Docker Daemon):
    在主机上用于管理、运行和分发Docker容器的后台服务。用于客户端与操作系统交互
  • Docker客户端(Docker Client):
    用于与Docker Daemon交互的Docker命令行工具或其他客户端程序
  • Docker Hub:
    一个Docker Images的registry(一个存储了各种docker镜像的目录),可以在上面维护自己的docker镜像或从上面拉取镜像

Docker CheatSheet

镜像

  • 查看镜像
docker images
#------------------------------------------------------------------------------- 
# -q: 如果指定,则只显示镜像id
# -a: 如果指定,显示所有镜像
# -f: 用于筛选镜像
  • 拉取镜像
docker pull l1nkm3/ubuntu_pwn:17.10
#------------------------------------------------------------------------------- 
# l1nkm3: 仓库所有者
# ubuntu_pwn: 仓库名
# 17.10: 标签
  • 运行镜像
docker run -it -p 8080:1234 l1nkm3/ubuntu_pwn:17.10 /bin/sh 
#------------------------------------------------------------------------------- 
# -it: 附加到一个交互式的终端
# -p 8080:1234: 将容器中的8080端口转发到本地的1234端口
# /bin/sh: 运行完该命令后退出
docker run --rm l1nkm3/ubuntu_pwn:17.10 /bin/sh 
#------------------------------------------------------------------------------- 
# --rm: docker容器退出后直接删除
docker run -d -P --name static-site prakhar1989/static-site
#------------------------------------------------------------------------------- 
# -d: 运行后脱离(detach)
# -P: 将容器所有暴露出来的端口映射到随机的宿主机端口上,之后可以用docker port查看
# --name: 为容器指定名字,之后可以使用名字而不是id
docker run -v /tmp:/share ubuntu:17.10
#------------------------------------------------------------------------------- 
# -v /tmp:/share 将主机的/tmp目录挂载到容器的/share目录
  • 查看端口映射
docker port static-site
  • 删除镜像
docker rmi 305297d7a235

容器

  • 查看容器
docker ps -a
#------------------------------------------------------------------------------- 
# -a: 指定后列出所有容器,否则列出正在运行的容器
docker ps -a -q -f status=exited
#------------------------------------------------------------------------------- 
# -q: 只列出容器id
# -f status=exited: 状态为exited的容器。-f筛选满足条件的容器
  • 启动容器
docker start -a hello-world
#------------------------------------------------------------------------------- 
# -a: 指定后附加到该容器
  • 停止容器
docker stop ff0a5c3750b9
#------------------------------------------------------------------------------- 
# -t n: 等待n秒后停止,默认10秒
  • 删除容器
docker rm 305297d7a235 ff0a5c3750b9
#------------------------------------------------------------------------------- 
# 305297d7a235与ff0a5c3750b9: 容器的id,可以是唯一前缀
  • 删除满足条件的容器
docker rm $(docker ps -a -q -f status=exited)
#------------------------------------------------------------------------------- 
# -q: 只列出容器id
# -f status=exited: 状态为exited的容器。-f筛选满足条件的容器
docker container prune
#------------------------------------------------------------------------------- 
# 与上一条指令作用相同

Docker 网络

  • 查看网络
docker network ls
docker network inspect c2c695315b3a
  • 创建网络
docker network create new_network
  • 在网络下运行镜像容器
docker run --net new_network ubuntu:17.10
  • 删除网络
docker network rm new_network

Dockerfile

# 指定基础镜像
FROM l1nkm3/ubuntu_pwn:17.10

# optional,说明维护者,最好加上联系方式
MAINTAINER L1nkM3 

# 设置环境变量
ENV VERSION=0.1

# 执行指令
RUN echo "run command with RUN"
# 也可以写成
RUN ["echo", "\"run command with RUN\""]

# 暴露端口
EXPOSE 9981

# 指定接下来指令的工作路径
WORKDIR /tmp

# 指定接下来的用户
USER root

# 默认命令
CMD /bin/sh

# 入口命令,-i 参数传给这条指令
ENTRYPOINT ls

# 拷贝文件
COPY /etc/passw* /tmp

你可能感兴趣的:(Docker cheatsheet)