文章只记录了重要的命令和使用,如果想要学习更加详细的建议看视频bilibili视频地址
1.安装docker
1.1使用centos的进行一站式安装
curl -sSL https://get.daocloud.io/docker | sh
1.2测试是否安装成功
docker version
显示下面内容代表安装成功
2 linux对于docker的基础命令
命令 | 作用 |
---|
service docker start | 开启docker服务 |
service docker restart | 重启docker服务 |
service docker stop | 关闭docker服务 |
查看是否开启docker
ps -ef|grep docker
3 docker自身的主要命令
3.1帮助命令
命令 | 作用 |
---|
docker info | 对个人信息的描述 |
docker version | 查看docker的版本 |
docker --help | docker的命令说明 |
3.2镜像命令
命令 | 作用 |
---|
docker images | 列出本地主机上的镜像 |
docker search 某个XXX镜像的名字 | 去docker官网上查找镜像 |
docker pull 镜像名 | 下载镜像 |
docker rmi 镜像名id | 删除镜像 |
docker rmi -f 镜像名id | 强制删除镜像 |
3.3容器命令
命令 | 作用 |
---|
docker run -it 镜像id | 创建启动一个容器 |
docker ps | docker有哪些进程在运行 |
ctrl+p+q | 容器不停止退出(停止退出使用exit) |
docker start 容器id | 启动容器 |
docker restart 容器id | 重启容器 |
docker stop 容器id | 停止容器 |
docker kill 容器id | 强制停止容器 |
docker rm 容器id | 删除已经停止的容器 |
docker run -d 容器id | 启动守护式容器 |
docker logs 容器id | 查看容器日志(详细选项需要自己去查) |
docker top 容器id | 查看容器内运行的进程 |
docker inspect 容器id | 查看容器内部细节 |
docker attach | 直接进入容器启动命令的终端,不会启动新的进程 |
docker exec -it 容器id 命令 | 是在容器中打开新的终端,并且可以启动新的进程 |
docker cp 容器id:容器内路径 目的主机路径 | 从容器内拷贝文件到主机上 |
docker commit -m=“提交的描述信息” -a=“作者” 容器id 要创建的目标镜像名:标签名 | 提交容器副本使之成为一个新的镜像 |
docker exec -it 容器端口 /bin/bash | 进入容器命令 |
docker run -it -p 宿主机端口:docker容器进程端口 要运行的镜像 | 创建一个容器运行并绑定端口 |
docker run -it --privileged=true -v 宿主机地址:容器地址 容器id | 启动的时候创建容器卷 |
docker run -it - -volumes-from 容器名 镜像id | 创建的时候继承别的容器的数据卷 |
docker tag 容器名:标签 ip:端口/容器名:标签 | 将容器重新打标签用于传送到目标仓库 |
docker push ip:端口/容器名:标签 | 将容器发送到目标仓库,需要在上一步中有对应的tag操作 |
docker image prune | 将镜像中的虚悬镜像删除(有< none > 的镜像) |
docker image prune -a | 将乜有被引用过的镜像都删除 |
docker container prune | 删除没有用的容器 |
docker system prune [ -a ] | 将一些没用的配置信息,关闭的容器,没用的镜像都删除 |
docker system prune --filter “until=24h” | 只删除24小时之前创建的,没有用的配置信息,关闭的容器,没用的镜像 |
docker inspect 容器id | 查看容器的详细信息 |
docker save 镜像名 > name.tar | 将镜像进行打包 |
docker load < name.tar | 将镜像进行导入 |
scp /home/name.tar root@ip:/name.tar | 将tar文件复制到远程 |
scp root@ip:/home/name.tar /home/name.tar | 从远程服务器拉取 |
docker run命令的详情:
3.4 容器数据卷命令
命令 | 作用 |
---|
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名 | 创建一个容器数据卷(可读写) |
docker run -it -v /宿主机绝对路径:/容器内目录:ro 镜像名 | 创建一个容器数据卷(只读) |
docker build -f 创建的dockfile文件 -t 要创建的镜像名 . | 通过dockerfile 来创建镜像(前面命令最后位置还有一个点) |
docker run -it --volumes-from 要继承的容器名 要运行的镜像 | 创建一个容器,继承自另一个容器的容器数据卷 |
4.dockerFile体系结构(保留字指令)
- FROM
基础镜像,当前新镜像是基于那个镜像的 - MAINTAINER
镜像维护者的姓名和邮箱地址 - RUN
容器创建时需要运行的命令 - EXPOSE
当前容器对外暴露出的端口号 - WORKDIR
指定字啊创建容器后,终端默认登陆的进来工作目录,一个落脚点(登录进入以后进入的目录) - ENV
用来在构建镜像过程中设置环境变量 - ADD
将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包 - COPY
类似ADD,拷贝文件和目录到镜像中。
将从构建上下文目录中< 源路径 >的文件/目录复制到新的一层的镜像内的< 目标路径 >位置 - VOLUME
容器数据卷,用于数据保存和持久化工作 - CMD
指定一个容器启动时要运行的命令团
Dockerfile 中可以有多个CMD 指令,但只有最后一个生效,cMD会被docker run之后的参数替代 - ENTRYPOINT
指定一个容器启动时要运行的命
ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数 - ONBUILD
当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发