乱七八糟
docker info # the information of docker, include images and container, etc.
保存容器的更改,commit
docker commit ID new_image_name
# -a, --author="" Author; -m, --message="" Commit message
修改镜像名字, tag
docker tag [IMAGE_ID] [USER_NAME]/[IMAGE_NAME]:[VERSION]
发布镜像到DockerHub中,push
docker push [USER_NAME]/[IMAGE_NAME]
重新进入容器中,退出容器后台运行
docker attach [CONTAINER_NAME/ID]
CTRL+SHIFT+p/q
查看容器输出日志,logs
docker logs [CONTAINER_NAME/ID]
停止(删除)所有的容器
docker stop(rm) 'docker ps (-a) -q'
创建镜像,Dockerfile
Dockerfile
FROM [BASE_IMAGE] # start from the dockerfile, base image
MAINTAINER [AUTHOR_NAME] "[E-MAIL]" # author information
RUN <command> # new layer of image, build up your image, RUN后面默认使用/bin/sh (e.g. RUN mkdir /usr/local/foo),也可更改为(e.g. RUN /bin/bash -c 'mkdir /usr/local/foo'), RUN命令可以有多个。
COPY/ADD <src> <destination> # 从本地或者url中拷贝到容器中
CMD ["executable","param1","param2"] # run on the image and start up, 只能有一个CMD,如果需要执行多条指令,可以私用script的方式。
EXPOSE <port> # 指定容器在运行时监听的端口
ENTRYPOINT ["executable", "param1","param2"] #配置给容器一个可执行的命令,这意味着在每次使用镜像创建容器时一个特定的应用程序可以被设置为默认程序。同时也意味着该镜像每次被调用时仅能运行指定的应用。类似于CMD,Docker只允许一个ENTRYPOINT
WORKDIR /path/to/workdir # 指定RUN、CMD与ENTRYPOINT命令的工作目录
ENV <key> <value> # 设置环境变量
VOLUME /data # 授权访问从容器内到主机上的目录
利用Dockerfile生成image
docker build -t [TAG_NAME] . # replace the . to the Dockerfile placement