Docker 镜像与容器

我就是我 2022-03-01 06:08 488阅读 0赞

#

镜像和容器的区别

镜像有分层堆叠的概念,每一层(layer)都是一个只读的层。

容器也有分层堆叠的概念,与镜像的唯一区别在于容器的最上面的那一层是可读写的。

所以,容器 = 镜像 + 读写层。

#

#

镜像的使用

1.查询镜像

  1. [root@docker ~]# docker search nginx

2.获取镜像

  1. [root@docker ~]# docker pull nginx

3.查看镜像

  1. [root@docker ~]# docker images

4.删除镜像

  1. [root@docker ~]# docker image rm nginx

5.镜像历史

  1. [root@docker ~]# docker history nginx:latest

6.查看镜像元数据信息

  1. [root@docker ~]# docker inspect nginx:latest

#

操作容器

1.新建并启动容器

  1. [root@docker ~]# docker run --name nginxweb -d -p 9527:80 -v /home/nginx:/etc/nginx -v /home/nginx/html:/usr/share/nginx/html nginx
  2. 参数
  3. --name 容器名字
  4. -d 后台运行
  5. -p 端口映射
  6. -v 文件挂载

2.新建一个容器但不启动它

  1. [root@docker ~]# docker create --name nginxweb -d -p 9527:80 -v /home/nginx:/etc/nginx -v /home/nginx/html:/usr/share/nginx/html nginx

3.开始一个终止状态的容器

  1. [root@docker ~]# docker start nginxweb

4.停止一个运行状态的容器

  1. [root@docker ~]# docker stop nginxweb

5.查看所有运行状态的容器

  1. [root@docker ~]# docker ps

6.查看所有运行状态以及终止状态的容器

  1. [root@docker ~]# docker ps -a

7.删除容器

  1. [root@docker ~]# docker rm nginxweb

8.进入容器

  1. [root@docker ~]# docker attach nginxweb
  2. [root@docker ~]# docker exec -it nginxweb /bin/bash
  3. 这两个命令都可进入容器,区别:attach进入容器后再退出容器,容器会终止运行
  4. 建议使用 docker exec -it 的方式进入容器

9.查看容器内文件变动情况

  1. [root@docker ~]# docker diff nginxweb

10.复制文件

  1. [root@docker ~]# docker cp 容器id:路径 ./

11.查看所有运行容器的IP地址

  1. [root@docker ~]# docker inspect --format='{
  2. {.Name}} - {
  3. {range.NetworkSettings.Networks}}{
  4. {.IPAddress}}{
  5. {end}}' $(docker ps -q)

#

#

镜像的导入与导出

1.容器导出(export)、导入(import)

  1. [root@docker ~]# docker export nginxweb > nginxweb.tar
  2. [root@docker ~]# docker import nginxweb.tar nginx:bak

2.镜像导出(save)、导入(load)

  1. [root@docker ~]# docker save > nginx.tar nginx:latest
  2. [root@docker ~]# docker load < nginx.tar

3.两者区别:

export是从容器中导出,save是从镜像中导出;

export导出的文件再import回去,会丢失镜像历史,无法回滚;而save导出的文件再load回去时,可以保存完整的镜像历史。

发表评论

表情:
评论列表 (有 0 条评论,488人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Docker镜像容器

    一、Docker镜像 要理解Docker镜像和Docker容器之间的区别,确实不容易。 假设Linux内核是第0层,那么无论怎么运行Docker,他都是运行于内核层之上

    相关 Docker 镜像容器

    镜像和容器的区别   镜像有分层堆叠的概念,每一层(layer)都是一个只读的层。 容器也有分层堆叠的概念,与镜像的唯一区别在于容器的最上面的那一层是可读写的。

    相关 Docker镜像容器命令

             Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包