一、常用命令
1 2 3 4 5 6 7
| docker -v # 查看版本号 docker info # 查看docker的信息 # Mac上在安装docker之后点击图标,手动启动docker命令 open /Applications/Docker.app # 还可以使用open命令打开docker应用 docker pull ubuntu # 使用 docker pull 命令来载入 ubuntu 镜像 docker run -it ubuntu /bin/bash # 使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器 -i: 交互式操作,-t: 终端。 docker run -d -p 8100:80 xxx/webapp # 指定端口,将docker的80端口映射到主机 8100 端口上
|
二、docker 镜像相关命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| docker images # 查看所有镜像,镜像类似于对象,容器类似于对象的实例,容器是由镜像实例化而来
# 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本, # 如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本 docker pull ubuntu:13.10 # 下载镜像 docker search httpd # 搜索镜像
# 创建镜像方法1:从已经创建的容器中更新镜像,并且提交这个镜像 apt-get update # 在容器内部更新 docker commit -m="has update" -a="runoob" 07a72718ed05 runoob/ubuntu:v2 # 提交更新 -m: 提交的描述信息 -a: 指定镜像作者 # 创建镜像方法2:使用 Dockerfile 指令来创建一个新的镜像(文件内容如下) docker build -t epoos/nginx . # 根据当前目录下的 Dockerfile 创建镜像
# 删除本地一个或多个镜像(docker rmi [OPTIONS] IMAGE [IMAGE...]) docker rmi hello-world # 加-f参数强制删除
|
三、docker 容器相关命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| docker ps -a # 查看所有容器,包括已经停止的容器 docker ps # 查看所有运行中的容器 docker start CONTAINER_ID # 启动一个已停止的容器 docker restart CONTAINER_ID # 启动一个已停止的容器 docker container ls # 查看已经启动的容器列表 docker stop CONTAINER_ID # 停止已经启动的容器 docker attach CONTAINER_ID # 进入已经启动的容器 # docker exec cat ./ubuntu.tar | docker import - test/ubuntu:v1 # 从容器快照文件中再导入为镜像 docker export CONTAINER_ID > ubuntu.tar # 将容器导出为指定文件 docker import http://example.com/exampleimage.tgz example/imagerepo # 可以通过指定 URL 或者某个目录来导入 docker rm -f CONTAINER_ID # 删除指定容器
docker pull epoos/webapp # 载入一个web 应用镜像
docker run -d -p 8100:80 epoos/webapp # 指定端口,将docker的80端口映射到主机 8100 端口上 docker run -ti epoos/webapp /bin/bash # 进入容器的 bash 界面
docker port # 快捷查询端口 docker logs -f CONTAINER_ID # 可以查看容器内部的标准输出。
|
四、Dockerfile 介绍
Dockerfile 构建镜像所需的指令和说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| FROM # 构建镜像基于哪个镜像 MAINTAINER # 镜像维护者姓名或邮箱地址 RUN # 构建镜像时运行的指令 CMD # 运行容器时执行的shell环境 VOLUME # 指定容器挂载点到宿主机自动生成的目录或其他容器 USER # 为RUN、CMD、和 ENTRYPOINT 执行命令指定运行用户 WORKDIR # 为 RUN、CMD、ENTRYPOINT、COPY 和 ADD 设置工作目录,就是切换目录 HEALTHCHECH # 健康检查 ARG # 构建时指定的一些参数 EXPOSE # 声明容器的服务端口(仅仅是声明) ENV # 设置容器环境变量 ADD # 拷贝文件或目录到容器中,如果是URL或压缩包便会自动下载或自动解压 COPY # 拷贝文件或目录到容器中,跟ADD类似,但不具备自动下载或解压的功能 ENTRYPOINT # 运行容器时执行的shell命令
|
五、使用 Dockerfile 构建应用
1 2 3 4 5
| # 新建文件夹里面配置如下三个文件 # ls ./Dockerfile ./index.html ./nginx.conf
|
1.Dockerfile文件内容
1 2 3 4 5
| FROM nginx RUN mkdir /usr/share/nginx/dist && rm -rf /etc/nginx/nginx.conf COPY ./nginx.conf /etc/nginx/nginx.conf COPY ./index.html /usr/share/nginx/dist/index.html CMD ["nginx", "-g", "daemon off;"]
|
2.index.html文件内容
1 2 3 4 5 6 7 8
| <html> <head> <title>nginx docker server demo</title> </head> <body> nginx docker server demo </body> </html>
|
3.nginx.conf文件内容
1 2 3 4 5 6 7 8 9 10 11 12
| # 拷贝一份nginx标准nginx.conf文件,修改80端口的server,如下所示 # ...省略 server { listen 80; server_name localhost; location / { alias /usr/share/nginx/dist/; } } # ...省略
|
4.构建镜像
1
| docker build -t epoos/nginx .
|
5.构建容器
1
| docker run -d -p 8100:80 epoos/webapp # 指定端口,将docker的80端口映射到主机 8100 端口上
|
6.访问应用
六、Docker登录与发布
当我们创建完自己的的docker镜像之后,就可以将其发布到网上供其它使用者直接使用了(和npm 包发布类似)。
首先得注册一个个人账号,地址:docker镜像地址
1 2 3 4 5
| docker image tag [本地镜像名称]:[本地镜像tag名称] [username]/[repository]:[tag] # 为本地的docker标注名称和tag docker image build -t [username]/[repository]:[tag] . # 也可以根据本地的 Dockerfile 配置文件重新创建镜像替换上面这一句
docker login # 登录 docker image push [username]/[repository]:[tag] # 发布
|
七、docker registry
docker registry是镜像源,下面有多个 docker镜像。
每个docker镜像可以有多个标签(版本)。
八、命令大全
docker命令能查看到 Docker 客户端的所有命令选项
1
| docker # docker 能够查看所有的docker命令信息
|
相关链接
docker 学习网站