Docker 学习笔记
一、安装 Docker
- 安装
yum -y install epel-release
,为后续安装做准备。 - 安装 Docker:
curl -sSL https://get.daocloud.io/docker | sh
。 - 设置仓库:
sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
- 启动 Docker:
sudo systemctl start docker
。 - 通过运行
hello-world
映像验证安装:sudo docker run hello-world
。
二、Docker 基本操作
(一)运行容器
- 运行简单命令:
docker run ubuntu:15.10 /bin/echo "Hello world"
。 - 启动容器(后台模式):
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
。
(二)容器管理
- 查看进程:
docker ps
,用于查看正在运行的容器进程。 - 查看日志:
docker logs [容器 ID]
,例如docker logs 48ee40c
,可查看特定容器的日志信息。 - 停止容器:
docker stop [容器 ID]
,如docker stop 48ee40c
或docker stop amazing_cori
。
(三)容器使用进阶
- 获取镜像:
docker pull ubuntu
,从 Docker 仓库拉取镜像。docker search jdk
,搜索可用的 JDK 镜像。
- 启动容器并进入交互模式:
docker run -it ubuntu /bin/bash
,可进入容器内部进行操作;docker run -d -it [容器 ID] /bin/bash
以守护进程和交互模式启动容器。 - 退出容器:在容器内输入
exit
可退出容器。 - 查看所有容器:
docker ps -a
,包括已停止的容器。 - 重启容器:
docker restart [容器 ID]
,如docker restart ca1662c70869b
。 - 进入容器(不同方式):
docker attach [容器 ID]
,进入容器,但退出容器时会停止容器,如docker attach ca166c70869b
。docker exec -it [容器 ID] /bin/bash
,进入容器后,退出容器不会导致容器停止,如docker exec -it ca166c708629b /bin/bash
。
- 导出镜像文件到本地:
docker export [容器 ID] >./ubuntu.tar
,例如docker export ca166c70869b >./ubuntu.tar
。 - 导入容器:
cat./ubuntu.tar | docker import - ubuntu:15.10
,将导出的镜像文件导入并自定义容器名称为ubuntu:15.10
。 - 删除容器:
docker rm -f [容器 ID]
,如docker rm -f 1e560f2ca3906
,删除容器(删除镜像前需先删除已停止容器);docker rm $(docker ps -a -q)
,删除所有已停止的容器。
三、运行 Web 应用
- 载入镜像:
docker pull training/webapp
。 - 运行容器:
docker run -d -P training/webapp python app.py
。 - 查看网络映射端口:
docker port [容器 ID]
,例如docker port bf08b72f2cd89
。 - 查看运行日志:
docker logs -f [容器 ID]
,如docker logs -f ad01ef625f8d2b
,可实时查看容器运行日志。 - 查看容器内部运行的进程:
docker top [容器 ID]
,如docker top ad02ef625f8d2b
。
四、镜像管理
- 查看镜像列表:
docker images
。 - 获取指定的镜像:
docker pull ubuntu:13.10
。 - 删除单个镜像:
docker rmi hello-world
(删除镜像得先删除已停止容器)。 - 删除所有镜像:
docker rmi -f $(docker images -q)
,强制删除所有镜像;docker rmi $(docker image -q)
(此命令中docker image -q
应为docker images -q
)。