Docker 学习笔记
一 : CentOS 6.10 安装docker
1、CentOS 安装docker
(1) 环境: yum install -y epel-release
(2) 安装: yum install -y docker-io
(3) 安装后的配置文件: /etc/sysconfig/docker
(4) 启动docker后台服务: service docker start
(5) docker version验证
2、镜像加速器:(阿里、网易)
vim /etc/sysconfig/docker
other_args="--registry-mirror=https://co95oz5s.mirror.aliyuncs.com"(自己申请account阿里生成)
service docker restart (重启服务)
3. 启动docker后台容器(测试 hello world)
docker run hello-world (由于本地没有helllo-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行)
Unable to find image 'hello-world:latest' locally latest: Pulling from hello-world
4.Docker运行原理:
Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,
守护进程从客户端接受命令并管理运行在主机上的容器。容器,就是一个运行时的环境,就是我们前面说到的集装箱。
二: docker常用命令
1.帮助命令:
(1) docker version
(2) docker info
(3) docker --help
2.镜像命令:
(1)docker images : 列出本地主机上的镜像
options: -a : 列出本地所有的镜像(含中间映像层) docker images -a
-q : 只显示镜像id docker images -q / docker images -qa
--digests : 显示镜像的摘要信息
--no-trunc : 显示完整的镜像信息
(2) docker search 某个xxx镜像名字
options:
--no-trunc : 显示完整的镜像描述
-s : 列出收藏数不小于指定值的镜像 docker search -s 30 tomcat
--automated: 列出automated build 类的镜像 search -s 30 --automated tomcat
(3)docker pull 某个xxx镜像名字
下载镜像: docker pull 镜像名字:[:TAG]
docker pull tomcat <==> docker pull tomcat:lastest
(4)docker rmi 某个xxx镜像名字
①删除单个 docker rmi -f 镜像ID
docker rmi hello-world
docker rmi -f hello-world 强制删除
②删除多个 docker rmi -f 镜像名1:TAG镜像名2TAG
docker rmi -f nginx hello-world
③删除全部 docker rmi -f $(docker images -qa)
3.容器命令:
(1) 新建并启动容器
docker run [options] IMAGE [COMMAND][ARG…]
* options说明(常用):
--name=”容器新名字” :为容器指定一个名称;
-d : 后台运行容器,并返回容器ID,也即启动守护式容器;
-i : 以交互模式运行容器,通常与 -t 同时使用
-t : 为容器重新分配一个伪终端,通常与 –i 同时使用
-P : 随机端口映射
-p : 指定端口映射,有以下四种方式
ip: hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
(2) 列出当前所有正在运行的容器
docker ps [options]
options : 说明(常用)
-a : 列出当前所有正在运行的容器 + 历史上运行过的
-I : 显示最近创建的容器 (last –上一个)
-n : 显示最近n个创建的容器
-q : 静默模式,只显示容器编号
-no-trunc : 不截断输出
(3) 退出容器
exit : 容器停止退出
ctrl +P+Q : 容器不停止退出
(4) 启动容器
docker start 容器ID/容器名字
docker restart 容器ID/容器名字 (重启)
(5) 停止容器
docker stop 容器ID/容器名字
(6) 强制停止容器
docker kill 容器ID/容器名字
(7) 删除已停止的容器
docker rm 容器ID
一次性删除多个
docker rm –f $(docker ps –a -q)
docker ps –a –q | xargs docker rm
重要:
1. 启动守护式容器
docker run -d 容器名
docker run -d centos
2. 查看容器日志
Docker logs -f -t -tail 容器ID
-t : 是加入时间戳
-f : 跟随最新的日志打印
--tail: 数字显示最后多少条
3. 查看容器内运行的进程
docker top 容器名
4. 查看容器内部细节
docker inspect 容器ID
5. 进入正在运行的容器并以命令行交互
(1) docker exec –it 容器ID bashShell
docker exec –it 容器ID /bin/bash
(2) 重新进入docker attach 容器ID
上述区别: attach : 直接进入容器启动命令的终端,不会启动新的进程
exec : 是在容器中打开新的终端,并且可以启动新的进程