整理一个docker相关命令,来自一位python的同事整理,为方便自己和他人查录,特别放进博客中:
docker cmd 相关命令
docker info # 查看docker 情况
docker run # 运行容器
- v src:dest # 挂载
- p 主机port:容器port # 开放端口
- –always=restart # 重启常开
- -i # stdin 输入开
- -t # 新开一个伪tty终端,用来进行交互
- –name # 新开容器名字, 一般放在最前面
- –log-driver=“syslog” # 指定日志记录方式
- -d # 守护进程,后台运行
- -c # 运行shell 命令
- –restart=always # 检测重启
- –restart=on-failure:5 # 当结束代码为0时,自动重启,设置重启次数为5
- -P # 对外公开端口,EXPOSE 的端口也会一并开启**
示例:docker run -d -P --name static_web posa/static_web nginx -g “daemon off;”**
-w # 覆盖工作目录
run -w /usr/bin
-e # 设置环境变量
run -e “TARGET_DIR=/opt/app”
- –net # 指定网络运行地址
- –privileged # 特权模式,和宿主机几乎一样的权限
- –cidfile # 将id存入文件
- –cidfile=/tmp/container/id.txt
- –volumes-from # 把指定容器的卷加入新容器
- –rm # 自动删除容器
- -h # 设置容器主机名
- –link # 在–link标签下,接收容器就是通过设置环境变量和更新/etc/hosts文件来获取源容器的信息,并与之建立通信和传递数据的。(会被弃用)
docker exec # 进入容器
docker exec -d container touch a # 进入容器并运行命令
docker attach # 附着容器,退出后容器也会退出
docker ps # 查看容器
- -a # 查看所有容器 默认查看当前运行容器
- -n x # 查看最后的n个容器
- -l # 查看端口映射情况
docker images # 查看镜像
docker pull # 拉取镜像
docker build -t # 运行docker file
docker build -t=“name/container_name:tag” # 设置标签名
-f # 指定file文件
-f path/to/file
docker build -t=“name/container_name:tag” git@github.com:jamtur01/docker-static_web # 利用远程文件建立镜像
docker build --no-cache -t=“jamtur01/static_web” . # 忽略缓存构建
docker tag # 标记镜像
docker push # 上传镜像
docker push posa/web # 仓库地址 Repository
自动构建
需要管理 github和docker hub
docker search # 查找镜像
docker start # 启动已经停止的容器
docker stop # 停止容器
docker kill # 停止容器
docker restart # 重启容器
docker logs # 查看容器日志
-f # 跟踪输出日志
–tail 10 # 跟踪最后10条日志
-ft # 跟踪尾部
docker top container # 查看容器内部进程
docker stats container # 查看容器状态,用于监控
docker inspect # 查看容器详细信息
docker inspect --format=’{{.State.Running}}’
docker rm container # 删除容器
docker rm -f container # 强删容器
docker rm ‘docker ps -a -q’ # 删除所有容器
docker rmi # 删除镜像
docker rmi a b c # 删除多个镜像
docker rmi ‘docker images -a -q’ # 删除全部镜像
docker login # 登录docker Registry
docker logout # 登出docker Registry
docker commit container # 提交保存容器成镜像,
docker commit 4aa jamtur01/apache2:webserver
-m # 指定镜像提交信息
-a # 指定 author
jamtur01/apache2 # 指定用户名和仓库名
:webserver # 为镜像增加标签
docker inspect jatur01/apache2:webserver # 查看提交镜像的详细信息
docker history container_name # 查看镜像如何构建的
docker port container container_port # 查看容器及容器映射出来的端口
container command
hostname # 查看主机名
cat /etc/hosts # 查看hosts文件
ip a # 查看容器接口
env # 查看环境变量
docker file
FROM # docker pull
RUN #
WORKDIR # change dir
CMD # run entrance, 运行容器时会自动运行,入口只能有一个,有多个时,默认运行最后一条,当运行run 命令时,会造成覆盖
CMD ["/bin/sh", “start”]
ENTRYPOINT # 也是运行入口,与CMD 的区别是 run 运行的额外命令,会传给ENTRYPOINT
way 1
ENTRYPOINT ["/bin/nginx"]
run -it container_name -g “daemon off;”
等于 运行 nginx -g “daemon off;”
way 2
ENTRYPOINT ["/usr/sbin/nginx"]
CMD ["-h"]
等同于 /usr/sbin/nginx -h
EXPOSE port # 声明暴露端口
MAINTAINER # 作者声明
MAINTAINER Posa Dusty "zmzposa@outlook.com"
WORKDIR # 设置工作目录
run -w # 覆盖工作目录
ENV # 设置环境变量
ENV RVM_PATH /home/rvm/
ENV RVM_PATH=/home/rvm RVM_ARCHFLAGS="-arch i386" # 设置多个环境变量
设置环境变量并使用
ENV TARGET_DIR /opt/app
WORKDIR $TARGET_DIR
run时设置环境变量
run -e “TARGET_DIR=/opt/app”
USER # 指定镜像以何用户运行,默认为root
USER nginx
指定USER 和 GROUP
USER user
USER user:group
USER uid
USER uid:gid
USER user:gid
VOLUME # 向镜像创建的容器添加卷
VOLUME ["/opt/project"]
ADD # 复制or提取文件到镜像中 (PS:使用ADD构建之后,之后的指令缓存不能再使用)
ADD sof.inc /opt/project/config/sof.inc # 前为Dockerfile 文件位置,后为镜像位置
ADD http://wordpress.org/latest.zip /root/wordpress.zip # 通过网络地址复制
ADD latest.tar.gz /var/www/wordpress # 自动解压到目录
COPY # 复制文件到镜像目录中
COPY conf.d/ /etc/apache2/ # 直接复制整个目录
LABEL # 为Docjer镜像添加元数据,以键值对的形式,使用 inspect 查看元数据
LABEL version=“1.0” location=“New York”
STOPSIGNAL # 设置停止容器时发送什么系统调用信号给容器
ARG # 为build命令运行时传递给构建运行时的变量,使用 --build-arg 激活
ARG build
ARG web_user=posa
docker build --build-arg build=12345 -t posa/web . # 设置变量build 为1234, web为默认值,posa
一般用来预定义ARG变量
HTTP_PROXY
http_proxy
HTTPS_PROXY
https_proxy
FTP_PROXY
ftp_proxy
NO_PROXY
no_proxy
…
ONBUILD # 为构建特殊镜像时指定额外指令,用inspect可以查看
ONBUILD ADD . /opt/project/ # 复制到project # 运行时会执行该指令
docker build -t=“posa” .
在子镜像设置
FROM posa #