基本命令
# docker version #查看docker信息
# docker info #查看docker信息
# docker images #查看本地镜像
# docker search #查找镜像
# docker pull #获取镜像 默认镜像标签latest
# docker run #创建并运行镜像 run=create+start
-it = -i +-t 以交互模式进入容器
-i 表示打开并保持stdout
-t表示分配一个终端
-d 后台运行容器
--name 指定容器名
# docker start/stop/pause/unpause #启动/停止/暂停/恢复
# docker ps #查看运行的容器
-a 所有容器
-l 最近容器
# crtl+d 或exit #退出正在运行容器,退出后容器为关闭状态
# ctrl+p ctrl+q #退出正在运行容器,退出后容器为up状态
# docker exec # 进入运行的容器
# docker logs #查看日志信息
# docker rm [container ID] # 删除容器
# docker rmi [image id] # 删除镜像
# docker push #上传镜像
# docker load/docker save # 镜像载入/保存
# docker import/docker export # 容器导入与导出
docker tag ocean 779347913/ocean-ding:v2 更改容器名称与仓库一致
写镜像文件
docker的镜像文件命名 必须是**Dockerfile**
FROM centos 指定系统
RUN yum update -y Linux的系统命令
这里写一个简单的小示例文件
文件的内容很简单 创建一个centos系统 并更新yum
这样一个镜像文件就构建成功了
镜像生成
构建成功后 我们要根据镜像文件的内容编译生成镜像。
命令参数
docker build -t 名称 .
docker build [OPTIONS] PATH | URL |
-t ,--tag list #构建后的镜像名称
-f, --file string #指定Dockerfiile文件位置
示例:
1,docker build .
2,docker build -t redis:v1 .
3,docker build -t redis:v2 -f /path/Dockerfile /path
查看执行成功后生成的镜像
docker iamges
根据镜像生成容器
生成镜像后 根据镜像生成容器
docker run -itd --name oceantest ocean
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷
进入容器
此时我们的容器已经创建好了
下面我们进入容器
docker exec -it oceantest bash
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
或者
docker attach 容器ID
退出容器
exit
或者
Ctrl+P+Q