docker 基础命令
- 启动docker
systemctl start docker
- 关闭docker
systemctl stop docker
- 重启docker
systemctl restart docker
- docker设置随服务启动而自启动
systemctl enable docker
- 查看docker 运行状态
systemctl status docker
如果是在运行中 输入命令后 会看到绿色的active
- 查看docker 版本号信息
docker version
docker info
- docker 帮助命令
docker --help
比如 咱忘记了 拉取命令 不知道可以带哪些参数 咱可以这样使用
docker pull --help
docker 镜像命令
- 查看自己服务器中docker 镜像列表
docker images
- 搜索镜像
docker search 镜像名
docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像
- 拉取镜像
不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker pull 镜像名
docker pull 镜像名:tag
比如拉取ubuntu:
- 删除镜像
删除一个:
docker rmi -f 镜像名/镜像ID
删除多个 其镜像ID或镜像用用空格隔开即可
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
强制删除镜像
docker image rm 镜像名称/镜像ID
- 保存镜像
将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
- 加载镜像
任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像
docker load -i 镜像保存文件位置
容器命令
- 通过镜像运行一个容器
docker run 镜像名字
- 查看正在运行的容器
docker ps
常用参数:
-a :列出当前所有的容器
-l :显示最近创建的容器。
-n nu:显示最近nu个创建的容器。
-q :静默模式,只显示容器编号。
- 运行容器时的常用参数
-it
: 命令交互式
比如运行ubuntu
docker run -it ubuntu
退出交互:
- 输入
exit
:容器也会停止运行 - 输入
ctrl+p+q
: 容器不会停止运行
-d
: 后台守护式
比如运行redis:
docker run -d redis
- 进入正在运行的容器并以命令行交互
# 这种方式会打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止
docker exec -it 容器ID/容器名称 /bin/bash
# 直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止
docker attach 容器ID
比如进入redis:
- 停止容器
docker stop 容器ID或者容器名
- 强制停止容器
docker kill 容器ID或容器名
- 启动已停止运行的容器
docker start 容器ID或者容器名
- 重启容器
docker restart 容器ID或者容器名
- 删除已停止的容器
#删除一个
docker rm 容器ID
docker rm -f 容器ID #强制删除
#删除多个
docker rm -f $(docker ps -a -q)
或
docker ps -a -q | xargs docker rm
- 查看容器日志
docker logs 容器ID
- 查看容器内运行的进程
docker top 容器ID
- 查看容器内部细节
查看其json文件
docker inspect 容器ID
- 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
例如:
docker cp 3d26bf46bbb0:/home/ubuntu/a.txt /root/test
- 导入和导出容器
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
挂载数据卷
如何理解
就是宿主机与docker容器之间的文件进行一个同步操作,例如:当我指定某个宿主机目录与docker容器中的某个目录进行数据卷挂载的时候,那么无论是我操作宿主机中的这个目录,还是docker容器中的目录时,他们之间都会进行数据共享,使两者目录的内容保持一致
数据卷的特点
- 数据卷可在容器之间共享或重用数据
- 卷中的更改可以直接生效
- 数据卷中的更改不会包含在镜像的更新中
- 数据卷的生命周期一直持续到没有容器使用它为止
使用:
首先在宿主机上面创建一个目录tmp,方便后续测试
以数据卷挂载的方式运行一个ubuntu容器
docker run -it -v /root/tmp:/tmp ubuntu
解释:
-v /root/tmp:/tmp:-v就是指定需要进行数据卷挂载,冒号左边的是宿主机目录,右边是docker容器目录
运行成功后应该会看到一个tmp目录, cd进去
创建一个test.txt文件
返回宿主机目录发现在tmp目录下出现了一个test.txt文件
再到宿主机上面创建一个host.txt
然后再查看docker中是否数据进行了同步更新
到这里就完成了宿主机与docker容器中的一个数据同步更新了
自己提交一个镜像
我们运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
本地镜像发布到阿里云
首先登录阿里云,然后进入控制台
然后可以在快捷入口这里添加一个容器镜像服务
点击进去选择个人版或者企业版即可
然后设置密码:
创建命名空间:
接着创建镜像仓库:
最后会给你一个操作指南,跟着做就行