docker

JerryXia 发表于 , 阅读 (2)
# 我常用的命令docker pull imgage:tag # 下载镜像docker images # 查看本地镜像docker ps -a # 查看所有容器, 默认只显示正在运行的容器docker rm `docker ps -a -q` # 删除所有容器docker run -ti image:tag /bin/bash # 查看镜像内容, 方便写 Dockerfiledocker build -t xxx . # 根据当前目录的 Dockerfile 创建一个镜像docker run --name xxx-app -d -p 8080:80 xxx # 创建容器, 绑定端口docker infodocker help# registry, 格式(user)/(repo_name)docker search/history/push (image-name)# imagedocker pull busybox # 获取 imagedocker images # 查看 imagesdocker tag <image id> <tag name>docker push <tag name>docker rmi <image name> # 获取 imagedocker commit $sample_job job1 # 保存 job 为 image# containerdocker ps # 查看 containerdocker attach <container name>docker kill <container name># jobdocker run busybox /bin/echo Hello Dockersample_job=$(docker run -d busybox /bin/sh -c "while true; do echo Docker; sleep 1; done")docker logs $sample_jobdocker stop/restart/rm $sample_jobdocker commit $sample_job job1 # 保存 job 为 image# otherdaemon # 管理 container 后台进程build # 根据 dockerfile 来创建容器
  • dockerfile
# 格式 INSTRUCTION argumentFROM <image name>MAINTAINER <author name>RUN <command>ADD <src> <des> # src: 文件夹/url; des: container 内文件夹CMD # container 内的命令, 只允许执行一个ENTRYPOINT # 类似 CMDEXPOSE <port>WORKDIR /path/to/workdir # RUN / CMD / ENTRYPOINTENV <key> <value>USER <uid>VOLUME ["/data"]

dockerfile 最佳实践:

  • Docker Registry

感觉代入 git registry 来理解会更好一点

  • 安全

  • API

php 开发者的docker之旅

  1. 使用 Ubuntu 作为基础镜像, 使用 apt-get 构建 php + Apache 环境
  2. 使用 php-cli 作为基础镜像, 直接跑 php-cli app

第一本 docker 书

docker info# containerdocker run -ti --rm --name <container-name> ubuntu bash # -d daemondocker start <container-name>docker attach <container-name>docker stopdocker ps -adocker logsdocker topdocker exec# 构建镜像docker commit # 不推荐,推荐使用 Dockerfiledocker build --no-cache -t='xxx/xx'