Docker容器和镜像操做

前言

Docker 容器和镜像操做,记录下来!💻🐸html

容器

  • 建立一个新的容器(ubuntu)并启动
$ docker run -dit --name ubuntu ubuntu
复制代码

  • 在容器内执行命令(容器在后台启动),用 docker exec 命令
$ docker exec -it ubuntu bash
复制代码

注意:使用exit 命令退出在容器内执行命令。linux

  • 查看容器详细信息
& docker inspect ubuntu
复制代码

包括容器的ID、容器名、环境变量、运行命令、主机配置、网络配置等。nginx

使用 -f 参数能够查看用户关心的数据:docker

  1. 查看容器运行状态:docker inspect -f='{{.State.Running}}' ubuntu shell

  2. 查看容器ip地址:docker inspect -f='{{.NetworkSettings.IPAddress}}' ubuntu ubuntu

  3. 查看容器名、容器id:docker inspect -f='{{.Name}} {{.ID}}' ubuntu 数组

  • 查看容器的进程
$ docker top ubuntu
复制代码

容器导出

  • 使用 export 命令能够导出容器
$ docker export nginx > ./docker/nginx.tar
复制代码

该命令将nginx容器导入到docker目录下。bash

容器导入

  • 使用 import 命令导入容器
$ cat nginx.tar | docker import - importednginx:ilatest
复制代码

镜像

镜像和容器的关系就像是程序和进程的关系,镜像扮演的角色就是容器的模板,不一样镜像能够构建不一样的容器。

本地镜像管理

  • 执行docker run再去下载会比较慢,能够先执行docker pull将镜像先下载下来,再运行。
$ docker pull hub.c.163.com/library/nginx:latest
复制代码

  • 由下载下来的镜像来构建容器
$ docker run -itd --name 163nginx -p 80:80 hub.c.163.com/library/nginx:latest
复制代码

  • 删除镜像docker rmi
$ docker rmi 镜像ID/镜像名
复制代码

有的时候,没法删除一个镜像,大部分缘由是由于该镜像被一个容器所依赖,此时须要先删除容器,而后就能够删除镜像了。微信

建立本地镜像

  • 根据已有容器建立一个本地镜像:commit 命令
$ docker commit -m "update index.html" --author='leeyunt' 13af96130e40 leeyunt/nginx:v1
复制代码

命令解释:网络

  1. 参数-m是对建立的该镜像的一个简单描述。
  2. --author表示该镜像的做者。
  3. 13af96130e40表示建立镜像所依据的容器的id
  4. leeyunt/nginx则表示仓库名,leeyunt是名称空间,nginx是镜像名。
  5. v1表示仓库的tag。
  6. 建立完成后,经过docker images命令就能够查看到刚刚建立的镜像。
  7. 经过刚刚建立的镜像运行一个容器,访问该容器,发现nginx默认的首页已经发生改变。

  • 根据Dockerfile文件构建镜像
  1. 新建一个名为Dockerfile的文件,内容以下:
FROM nginx
MAINTAINER leeyunt "leeyunt@outlook.com"
RUN echo 'hello docker!'>/usr/share/nginx/html/index.html
COPY ./hello.html /usr/share/nginx/html/
复制代码

解释:

  1. FROM nginx表示该镜像的构建,以已有的nginx镜像为基础,在该镜像的基础上构建。
  2. MAINTAINER指令用来声明建立镜像的做者信息以及邮箱信息,这个命令不是必须的。
  3. RUN指令用来修改镜像,算是使用比较频繁的一个指令了,该指令能够用来安装程序、安装库以及配置应用程序等,一个RUN指令执行会在当前镜像的基础上建立一个新的镜像层,接下来的指令将在这个新的镜像层上执行,RUN语句有两种不一样的形式:shell格式和exec格式。本案例采用的shell格式,shell 格式就像linux命令同样,exec格式则是一个JSON数组,将命令放到数组中便可。在使用RUN命令时,适当的时候能够将多个RUN命令合并成一个,这样能够避免在建立镜像时建立过多的层。
  4. COPY语句则是将镜像上下文中的hello.html文件拷贝到镜像中。

  1. 文件建立完成后,执行以下命令进行构建:
$ docker build -t leeyunt/nginx:v1 .
复制代码

命令解释:

  1. -t参数用来指定镜像的命名空间,仓库名以及TAG等信息。
  2. 最后面的.是指镜像构建上下文。

将镜像上传到Docker Hub

  • 经过docker push命令
$ docker push leeyunt/nginx:v1
复制代码

上传成功后,用户登陆 Docker Hub,就能够看到刚刚的镜像已经上传成功了。

最后

下期学习Docker高级用法。 🐔🐧🐦🐤

今日寄语:
“昨天下了雨,今天刮了风,明天太阳就出来了🌞️”

欢迎关注我的微信公众号:桃李报春 我的博客:leeyunt.top

桃李报春
相关文章
相关标签/搜索