$ decker images # 查看本地镜像文件
$ docker run -p 8080:80 -d daocloud.io/nginx # 启动nginx,启动之后显示的一长串
-p 表示将容器中nginx的80端口映射到本地的8080端口
-d 表示允许进程直接返回,当做守护进程执行。
$ docker ps # 查看当前正在运行的docker进程
$ docker stop id # 通过docker进程id 停止相关服务
$ docker rmi imageid # 通过imageid删除image进程
命令 | 用途 |
---|---|
docker pull | 获取image |
docker build | 创建image |
docker images | 列出imnages |
docker run | 运行container |
docker ps | 列出container |
docker rm | 删除container |
docker rmi | 删除image |
docker cp | 在hosts和container之间拷贝文件 |
docker commit | 保存改动为新的image |
FROM | base image |
RUM | 执行命令 |
ADD | 添加文件 |
COPY | 拷贝文件 |
CMD | 执行命令 |
EXPOSE | 暴露端口 |
WORKDIR | 指定路径 |
MAINTAINER | 维护者 |
ENV | 设定环境变量 |
ENTRYPOINT | 容器入口 |
USER | 指定用户 |
VOLUME | mount point |
Dockerfile
通过编写简单的文件自创docker镜像
1、创建Dockerfile文件,内容如下
FROM alpine:lastest # 基础镜像使用alpine
MAINTAINER xbf # 没有特殊意义,注解,共享时告诉别人这个镜像是我写的
CMD echo "hello docker" # 执行一条命令 echo "hello docker"
2、使用命令通过编写的文件创建一个镜像,名称为hello_docker
docker build -t hello_docker ./
3、运行image
docker run hello_docker
第二个Dockerfile
内容如下:
FROM centos
MAINTAINER xl
RUN yum update -y
RUN yum install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
#RUN nginx
EXPOSE 80
镜像分层
Dockerfile中的每一行都产生一个新层
FROM alpine:latest 123dsfasf
MAINTAINER xl 1wfas23fsaf
CMD echo “hello docker” 3slfjadsfss23
registry —> 镜像仓库
术语
English | 中文 |
---|---|
host | 宿主机 |
image | 镜像 |
container | 容器 |
registry | 仓库 |
daemon | 守护进程 |
client | 客户端 |
Registry 交互命令
docker search whalesay # 搜索仓库中的镜像
docker pull whalesay #下载仓库中的镜像到本地
docker push myname/whalesay #上传本地镜像到仓库中
国内的一些仓库
Registry 实战
多容器app
compose
compose-install-linux
curl -L https://github.com/docker/compose/releases/dowload/1.9.0/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
docker-compose.yml常用命令
命令 | 用途 |
---|---|
build | 本地创建镜像 |
command | 覆盖缺省命令 |
depends | 连接容器 |
ports | 暴露端口 |
volumes | 卷 |
image | pull镜像 |
up | 启动服务 |
stop | 停止服务 |
rm | 删除服务中的各个容器 |
logs | 观察各个容器的日志 |
ps | 列出服务相关的容器 |