docker官网
常用
启动
systemctl start docker
启动容器
docker run -d redis
docker run -d mysql
设置自动启动
systemctl enable docker
启动客户端
docker exec -it myredis redis-cli
docker exec -it mymysql /bin/bash
查看全部容器
docker ps -a
启动容器
docker start “容器名”
重启容器
docker restart “容器名”
安装
卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装所需的工具包
yum install -y yum-utils
设置镜像的仓库(国内资源)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
安装最新版docker(ce社区,ee企业)
yum install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
设置自动启动
systemctl enable docker
查看是否成功
docker version
测试
docker run hello-world
查看镜像
docker images
卸载docker
卸载目录:yum remove docker-ce docker-ce-cli containerd.io
删除资源:rm -rf /var/lib/docker
/var/lib/docker:docker默认资源路径
更换源
创建配置文件
vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://7bezldxe.mirror.aliyuncs.com/",
"https://docker.mirrors.ustc.edu.cn/",
"https://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true
}
}
重启 docker 服务
systemctl restart docker
基础
Docker 是 C/S 结构系统,Docker 的守护进程运行在主机上,通过 Socket 从客户端访问。DockerServer 接收 Docker-Client 的指令,就会执行这个命令。
Docker 比虚拟机快(VM)的原因:
- Docker 有比虚拟机更少的抽象层。
- Docker 利用宿主机的内核,VM 需要的是 Guest OS。
新建容器时,docker 不需像虚拟机一样,重新加载一个操作系统内核,避免引导。
Docker 命令
查看 docker 容器版本
docker version
查看 docker 容器信息
docker info
查看 docker 容器帮助
docker --help
帮助文档 https://docs.docker.com/engine/reference/run/
镜像命令
解释:
REPOSITORY:镜像仓库源
TAG:镜像标签
TMAGE ID:镜像id
CREATED:镜像创建时间
SIZE:镜像大小
docker images
列出本地的Images
# 可选项
--all,-a:列出本地所有的镜像
--digests:显示镜像的摘要信息
-q:只显示镜像的id
--no-trunc:显示完整的镜像信息
docker search
查找镜像
# docker search tomcat
# 查找+过滤
--filter=STARS=3000
# docker search tomcat --filter=STARS=3000
# 可选项 OPTIONS
-s:列出stars数不小于指定值
--no-trunc:列出完整的镜像信息
--automated:只列出automated build类型的镜像
docker pull
下载镜像(无 [tag] 默认最新版)
包含分层下载(重复的资源共用,节省内存),签名(防伪),真实地址
docker pull 镜像名 [:tag]
# docker pull mysql
# docker pull mysql:5.7
docker rmi
删除镜像,可以删除多个
docker rmi [OPTIONS] IMAGE ID
-f:强制删除
--no-prune:不移除该镜像的过程镜像
# 删除所有镜像
# docker rmi -f $(docker images -aq)
docker history
查看镜像的历史记录
docker history [OPTIONS] IMAGE
容器命令
docker run
创建容器
docker run [OPTIONS] IMAGE [COMMAND] [ARGS]
# 可选项 OPTIONS
--name: 为容器分配一个名称
-d:后台运行容器,并返回容器ID
-i:以交互模式运行容器,通常与-t同时使用
-p:指定端口映射,格式为:主机端口:容器端口
-t:为容器重新分配一个伪输入终端,通常与-i同时使用
# docker run -d --name my_docker <image_id>
# 测试:进入容器(centos)
docker run -it centos /bin/bash
# 从容器中退回主机,直接停止退出
exit
# 容器不停止退出(大写下按)
ctrl + P + Q
docker ps
查看容器
docker ps [OPTIONS]
# 可选项 OPTIONS
--all,-a:展示所有的容器,正在运行 + 历史运行过的容器
-n = ?:显示最近创建的容器,n 为数量
--latest,-l:显示最近创建的容器
--quiet,-q:静默模式,只显示容器编号
--filter,-f:根据条件过滤容器
docker start
启动容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop
停止容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker kill
强制停止容器
docker kill [OPTIONS] CONTAINER [CONTAINER...]
docker restart
重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]
docker rm
删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
# 可选项 OPTIONS
--force,-f:强制删除
# 全部删除
docker rm -f $(docker ps -aq)
docker exec
在运行的容器中执行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# 可选项 OPTIONS
-d:分离模式:在后台运行命令
-i:即使未连接STDIN也保持打开状态
-t:分配伪终端
# docker exec -it <CONTAINER> /bin/bash
docker attach
进入容器内部
docker attach images id
docker logs
查看容器日志
docker logs [OPTIONS] CONTAINER
# 可选项 OPTIONS
--details:显示日志的其它详细信息
--follow,-f:跟踪日志输出
--tail:从日志末尾开始显示的行数(需要加条数)
--timestamps,-t:显示时间戳
docker top
查看容器运行的进程
docker top CONTAINER [ps OPTIONS]
docker inspect
查看容器构造的详细信息
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
docker login
登录 docker 仓库
docker login [OPTIONS] [SERVER]
# 可选项 OPTIONS
--password,-p:密码
--username,-u:用户名