一、启动\关闭\重启 Docker:
(1)宿主机启动:sudo systemctl start docker
- 虚拟机启动 :
- docker run -i -t ubuntu:15.10 /bin/bash
- docker run -i -t [系统类型:系统版本] [目录] [shell 命令]
(2)宿主机关闭:sudo systemctl stop docker
- 虚拟机关闭 :
- docker stop [CONTAINER ID/NAMES]
- docker stop [镜像ID/镜像名]
(3)宿主机重启:sudo systemctl restart docker
二、显示/查看 Docker:
-
docker ps
三、退出虚拟机docker:
-
exit
四、后台启动/显示后台Docker:
(1)后台启动:
- docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
- docker run -d [系统类型:系统版本] [目录] -c [shell 命令]
(2)后台显示:
- docker logs [CONTAINER ID]
- docker logs [NAMES]
五、查看所有docker指令:
- docker
- 详细查询:
- docker states --help
六、启动容器:
(1)获取镜像:
- docker pull ubuntu
- docker pull [系统名]
(2)启动容器:(带交互式操作的终端)
- docker run -it ubuntu /bin/bash
- -i 交互式操作
- -t 终端
- ubuntu 系统名
- /bin/bash shell执行目录
七、创建后台容器:
- docker run -itd --name ubuntu-test ubuntu /bin/bash
- -i 交互式操作
- -t 终端
- -d 后台
- --name ubuntu-test 命名镜像
- ubuntu 镜像名
- /bin/bash shell执行目录
八、进入容器:
- docker attach [ID/Name] 退出会导致容器停止
- docker exec [ID/Name] 退出不会导致容器停止
九、列出镜像列表:
- docker images
十、构建镜像(使用对应文件)
docker build -t runoob/centos:6.7
- runoob/centos 镜像名
- 6.7 镜像版本
- . 文件目录
ps:Dockerfile文件格式
# centos
# 6.7
FROM centos:6.7
# Fisher 远程docker用户名
# "fisher@sudops.com" 远程docker邮箱
MAINTAINER Fisher "fisher@sudops.com"
# 设置root用户名和密码
RUN /bin/echo 'root:123456' |chpasswd
# 添加用户
RUN useradd runoob
# 设置新添用户的用户名和密码
RUN /bin/echo 'runoob:123456' |chpasswd
# 设置字符集并覆盖原有字符集
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
# 配置22 tcp端口
EXPOSE 22
# 配置80 web服务端口
EXPOSE 80
# 配置使用ssh连接
CMD /usr/sbin/sshd -D
# 复制指令
COPY
COPY [--chown=<user>:<group>] <源路径1>... <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
COPY hom* /mydir/
COPY hom?.txt /mydir/
# 可复制tar,gar,tgar指令,不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢
ADD
# 与CMD类似的执行语句,不会被docker run覆盖,可以给定参数
ENTRYPOINT
ENTRYPOINT ["<executeable>","<param1>","<param2>",...]
ENTRYPOINT ["nginx", "-c"] # 定参
# 镜像环境参数
ENV
ENV <key> <value>
ENV NODE_VERSION 7.2.0
# Dockerfile 环境参数
ARG <参数名>[=<默认值>]
# 定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。
VOLUME
VOLUME ["<路径1>", "<路径2>"...]
VOLUME <路径>
在启动容器 docker run 的时候,我们可以通过 -v 参数修改挂载点。
# 定义工作目录,否则每次docker build就会自动构建一个新的工作目录
WORKDIR
# 指定用户组
USER
# 监控docker运行情况
HEALTHCHECK
HEALTHCHECK [选项] CMD <命令>:设置检查容器健康状况的命令
HEALTHCHECK NONE:如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令
HEALTHCHECK [选项] CMD <命令> : 这边 CMD 后面跟随的命令使用,可以参考 CMD 的用法。
# 延迟构造docker(下次调用docker时启动)
ONBUILD
ONBUILD <其它指令>
十一、设置镜像标签:
docker tag 860c279d2fec runoob/centos:dev
- 860c279d2fec 镜像id
- runoob/centos 镜像名
- dev 镜像标签
十二、拖取镜像:
docker pull ubuntu:13.10
- ubuntu 镜像名
- 13.10 镜像版本
-
十三、查找镜像:
docker search httpd
- httpd 镜像名
十四、仓库管理:
(1)登录:
-
docker login
(2)退出:
-
docker logout
(3)拉取镜像:
-
docker search ubuntu
(4)镜像下载至本地:
-
docker pull ubuntu
(5)推送镜像:
- docker push ubuntu