1、镜像和容器
当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。镜像不仅含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会在运行环境创建一个隔离环境,称之为容器。
镜像仓库:存储和管理镜像的平台,Docker官方维护一个公共仓库:Docker Hub
Docker是如何能忽略系统环境的?
2、Docker容器操作
2.1 新建容器并启动
docker run [可选参数] image [COMMAND] [ARG...]
\# 参数说明:
--name="name" 容器名字:用来区分容器
-d 后台方式运行:相当于nohup
-it 参数为以交互模式运行容器,并为其重新分配一个伪输入终端
-p 指定容器的端口(四种方式)小写字母p
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
容器端口
-P 随机指定端口(大写字母P)
# 后台启动容器
docker run -d centos
# 启动容器,并进行交互式 (测试,不加bash也没有直接退出,centos交互模式默认会启动一个bash)
docker run -it centos /bin/bash
在使用docker run启动一个容器后会执行指定的命令,如果没有指定命令,容器就会立即执行完毕并退出。如果你想让容器一直运行,可以使用-d参数将容器放到后台运行。
2.2 容器管理
(1)、查看容器
docker ps # 列出当前正在运行的容器
# 命令参数可选项
-a # 列出当前正在运行的容器+历史运行过的容器
-n=? # 显示最近创建的容器(可以指定显示几条,比如-n=1)
-q # 只显示容器的编号
(2)、退出容器
exit # 容器直接停止,并退出
ctrl+P+Q # 容器不停止,退出
(3) 进入容器(与正在运行的容器进行交互)
Usage:docker attach [OPTIONS] <容器ID或名称>
$ docker attach 1e560fca3906
$ exit #从容器退出会导致容器停止
Usage:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]:
$docker exec -it 243c32535da7 /bin/bash # 与后台容器进行交互
$ exit #从容器退出不会导致容器停止(推荐使用)
$docker exec 243c32535da7 /bin/echo "hello,world" # 让容器输出hello,world
(4) 启动和停止容器
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止当前容器
(5)、删除容器
docker rm 容器id # 删除容器(不能删除正在运行的容器)如果要强制删除:docker rm -f 容器id
docker rm -f $(docker ps -aq) # 删除全部容器
docker ps -a -q|xargs docker rm # 删除所有容器
3、Docker镜像操作
Usage: docker image COMMAND
COMMAND:
load : 加载镜像
ls : ==docker images
rm : 删除指定镜像
build : Build an image from a Dockerfile