该笔记用于记录学习Docker 中碰到问题和摸索解决的过程方法。
Docker 教程,自学 http://www.runoob.com/docker/docker-tutorial.html
常用的一些命令
启动Docker后台服务:service docker start
进入容器交互
docker run -i -t ubuntu:15.10 /bin/basht 在新容易内置指定一个伪终端或终端
i允许你对容易内的标准进行交互
通过CTRL+D退出
停止容器命令: docker stop name/id
帮助命令 :docker stats --help
查看网络端口映射方式:docker port id
查看WEB应用程序日志:docker logs -f id
查看WEB 应用程序容器内部进程:docker top name
查看docker底层信息:docker inspect name
重启容器:docker start name
先停止容器然后移除应用:docker rm name ###name 指容易名称,ID指容器编号可以通过docker ps 查看
docker run -t -i ubuntu:15.10 /bin/bash ##通过:后面的标签区分不同版本镜像构建镜像 docker build:
以下都是在同一个目录下运行
cat Dockerfile
首先创建 Dockerfile 文件 在当前目录以 . 表示
docker build -t runoob/centos:6.7 . ##注意最后的 .参数说明:
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
安装 基本使用方法 参考 菜鸟教程。
1.Docker配置以及目录映射问题
使用 docker search nginx
docker pull nginx
runoob@runoob:~/nginx$ docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx 45c89fab0bf9ad643bc7ab571f3ccd65379b844498f54a7c8a4e7ca1dc3a2c1e runoob@runoob:~/nginx$命令说明:
-p 80:80:将容器的80端口映射到主机的80端口
--name mynginx:将容器命名为mynginx
-v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf
-v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs
查看容器运行状况
docker ps
没问题。
2.Dockerfile 使用方法
创建Dockerfile
首先,创建目录nginx,用于存放后面的相关东西。
runoob@runoob:~$ mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/confwww目录将映射为nginx容器配置的虚拟目录
logs目录将映射为nginx容器的日志目录
conf目录里的配置文件将映射为nginx容器的配置文件
进入创建的nginx目录,创建Dockerfile
FROM debian:jessie MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com" ENV NGINX_VERSION 1.10.1-1~jessie RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \ && echo "deb http://nginx.org/packages/debian/ jessie nginx" >> /etc/apt/sources.list \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ca-certificates \ nginx=${NGINX_VERSION} \ nginx-module-xslt \ nginx-module-geoip \ nginx-module-image-filter \ nginx-module-perl \ nginx-module-njs \ gettext-base \ && rm -rf /var/lib/apt/lists/* # forward request and error logs to docker log collector RUN ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.log EXPOSE 80 443 CMD ["nginx", "-g", "daemon off;"]通过Dockerfile创建一个镜像,替换成你自己的名字
docker build -t nginx .创建完成后,我们可以在本地的镜像列表里查找到刚刚创建的镜像
runoob@runoob:~/nginx$ docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 555bbd91e13c 3 days ago 182.8 MB 3.docker 上传发布。快速部署 https://blog.csdn.net/jacksonary/article/details/78961612更新提交镜像通过
docker run -t -i ubuntu:15.10 /bin/bash进入镜像 apt-get update 更新,然后exit退出容器。
使用commit 提交镜像副本
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8各个参数说明:
-m:提交的描述信息
-a:指定镜像作者
e218edb10161:容器ID
runoob/ubuntu:v2:指定要创建的目标镜像名
我们可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2: