简介
Docker镜像是用来启动容器的构建基石,Docker镜像是由文件系统叠加而成,当一个容器启动后,它将会被移到内存中。
为了区分同一个仓库中的不同镜像,Docker提供了一种成为标签(TAG)的功能。每个镜像在列出来时都会带有一个标签,这种机制使得同一个仓库可以存储多个镜像。
一、镜像
我们可以从Docker仓库中拉取我们需要的镜像使用,在国内可以使用网易的镜像中心:
https://c.163yun.com/hub#/m/home/
1、拉取镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
例如:docker pull hub.c.163.com/public/ubuntu:16.04-tools
2、查看已有镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
docker本地镜像都保存在宿主机的/var/lib/docker/image
例如:docker images
3、删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
可以通过 IMAGEID 或者 [REPOSITORY]:[TAG] 来删除
例如:docker rmi hub.c.163.com/public/ubuntu:16.04-tools
二、容器
1、运行容器
有了镜像之后,就可以使用该镜像运行多个容器
命令:docker run [OPTIONS] image[:TAG] [COMMAND] [ARG...]
例如:docker run -it ubuntu:16.04 /bin/bash
如果TAG没有指定,默认使用TAG为latest的镜像
-i 保证容器的STDIN是开启的(可以向系统输入命令),-t 让docker为容器分配一个伪tty终端
其他常用操作:
-d 守护式容器(后台运行的容器,没有交互式会话)
-it 可以创建一个能够交互的容器,而不是后台运行的容器
-p 指定映射端口 8080:80( 端口映射,格式为:主机(宿主)端口:容器端口)
ubuntu 表示使用Ubuntu创建容器,如果本地还没有这个镜像,docker就会到官网下载
创建完容器之后,就会在容器里面执行 /bin/bash命令
使用 ll 命令查看容器里面的目录,接着使用 exit 命令退出容器,只有指定的/bin/bash命令处于运行状态的时候,容器才会处于运行状态。
当推出容器的时候,/bin/bash命令就结束了,容器也随之停止了。
2、查看容器
docker ps [OPTIONS]
如果没有待任何操作,默认查看当前正在运行的容器,-a操作查看全部容器,包括停止的,由于之前使用了exit命令推出了容器,需要加上-a操作,才能看到
例如:docker ps -a
3、命名容器
docker run --name ubuntu -i -t ubuntu:16.04 /bin/bash
对比上图,会发现多了一个叫做ubuntu容器,容器的命名必须是唯一的。
4、删除容器:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
例如:docker rm 8ee6aa3c79cd
5、重新启动已经停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
例如:docker start ubuntu 或者docker start9d5892622889
也可以使用docker restart来重新启动一个容器
6、附着到容器上
Docker重新启动的时候,会沿用docker run命令时指定的参数来运行,因此上面重新启动的ubuntu容器重新启动后会运行一个交互式会话shell
也可以使用docker attach命令,重新附着到该容器会话上。
使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
docker attach [OPTIONS] CONTAINER
7、在容器内部运行进程
docker exec -d ubuntu touch /etc/text.txt
-d表示后台运行
有关于容器的介绍可以查看这篇文章: