docker学习记录二

Docker钟文文文档 :http://www.dockerinfo.net/docker-compose-%e9%a1%b9%e7%9b%ae

一、容器的使用

有镜像才能创建容器(根本前提)


1.进入容器


在使用-d参数时,容器会启动后进入后台,此时想要进入容器,可以通过以下两种命令进入:
1.1 docker attach —退出时输入exit,会导致容器的停止
1.2 docker exec —推荐 退出容器终端时,不会导致容器停止
2.创建并进入容器
docker run [options] [image id | image name]
options:
–name = “容器新名字” – 为容器指定一个名称
-d --后台运行容器,并返回容器id,也即启动守护式容器
-i —以交互式模式运行容器,通常与-t同时使用
-t --为容器重新分配一个伪输入终端,通常与-i同时使用
-P:随机端口映射
-p:指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort

docker run -i -t tomcat /bin/bash
中的/bin/bash的作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。
docker ps [options] 列出当前所有正在运行的容器
-l --上次运行的容器
-a --历史运行过的容器
-q --只显示容器id

退出容器:

两种退出方式:
   exit  容器停止退出
  ctrl+P+Q 容器不停止退出

**

启动容器:

**
docker start [容器名 | 容器id]

停止容器:
docker stop [容器id | 容器名]

强制停止容器
docker kill [容器id | 容器名]

删除已停止的容器
docker rm [容器名] 强制删除 加参数 -f

查看docker日志
docker logs [options] [dockerid]
options:
–tail [条数] 最近多少条日志
-f 跟随最新日志打印
-t 加入时间戳
文件拷贝
docker cp [容器id]:[容器内文件地址] [将要拷贝到的地址]

数据卷
docker run -it -v /宿主机绝对路径目录:/容器内的目录 镜像名
查看数据卷是否挂载成功 ---- docker inspect [容器id]
备注:
Docker挂载主机目录Docker访问出现cannot open directory.:Permission denied
解决办法:在挂载目录后面添加 --privileged=true 即可
容器间传递共享 --volumes-from
容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用为止。

DockerFile
Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本
构建三步骤 编写dockerfile文件---->docker build ---->docker run
Dockerfile内容基础知识
1.每条保留字指令都必须为大写字母并后面要跟随至少一个参数
2.指令按照从上到下,顺序执行
3.#标书注释
4.每条指令都会创建一个新的镜像层,并对镜像进行提交
保留字指令
FROM --基础镜像,当前新镜像是基于那个镜像的
MAINTAINER --镜像的维护者的姓名及邮箱地址
RUN --容器构建时需要运行的命令
EXPOSE – 当前容器对外的端口号
WORKDIR – 指定在创建容器后,终端默认登录进来工作目录,一个落脚点
ENV – 用来在构建镜像过程中设置环境变量
ADD – 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY – 类似ADD,拷贝文件和目录到镜像文件(无解压)
VOLUME – 容器数据卷,用于数据保存及持久化工作
CMD – 指定一个容器启动时要运行的命令(Dockerfile中可以有多个CMS文件,但只有最后一个命令生效,CMD会被docker run 之后的参数替换)
EBTRYPOINT – 指定一个容器启动时要运行的命令 (和CMD一样 都是在指定容器启动程序及参数)
ONBUILD --当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

发布了23 篇原创文章 · 获赞 10 · 访问量 4683

猜你喜欢

转载自blog.csdn.net/ming_zi_hao_nan_a/article/details/104504878
今日推荐