docker 基础命令

  1. 启动docker
systemctl start docker
  1. 关闭docker
systemctl stop docker
  1. 重启docker
systemctl restart docker
  1. docker设置随服务启动而自启动
systemctl enable docker
  1. 查看docker 运行状态
systemctl status docker

如果是在运行中 输入命令后 会看到绿色的active

  1. 查看docker 版本号信息
docker version

docker info
  1. docker 帮助命令
docker --help

比如 咱忘记了 拉取命令 不知道可以带哪些参数 咱可以这样使用

docker pull --help

docker 镜像命令

  1. 查看自己服务器中docker 镜像列表
docker images
  1. 搜索镜像
docker search 镜像名
docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像
  1. 拉取镜像

不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

docker pull 镜像名 
docker pull 镜像名:tag

比如拉取ubuntu:

  1. 删除镜像

删除一个:

docker rmi -f 镜像名/镜像ID

删除多个 其镜像ID或镜像用用空格隔开即可

docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID

docker rmi -f $(docker images -aq)

强制删除镜像

docker image rm 镜像名称/镜像ID
  1. 保存镜像

将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

  1. 加载镜像

任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

docker load -i 镜像保存文件位置

容器命令

  1. 通过镜像运行一个容器
docker run 镜像名字
  1. 查看正在运行的容器
docker ps


常用参数:
-a :列出当前所有的容器
-l :显示最近创建的容器。
-n nu:显示最近nu个创建的容器。
-q :静默模式,只显示容器编号。
  1. 运行容器时的常用参数

-it: 命令交互式

比如运行ubuntu

docker run -it ubuntu

退出交互:

  • 输入exit:容器也会停止运行
  • 输入ctrl+p+q: 容器不会停止运行

-d: 后台守护式

比如运行redis:

docker run -d redis
  1. 进入正在运行的容器并以命令行交互
# 这种方式会打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止
docker exec -it 容器ID/容器名称 /bin/bash

# 直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止
docker attach 容器ID

比如进入redis:

  1. 停止容器
docker stop 容器ID或者容器名
  1. 强制停止容器
docker kill 容器ID或容器名
  1. 启动已停止运行的容器
docker start 容器ID或者容器名
  1. 重启容器
docker restart 容器ID或者容器名
  1. 删除已停止的容器
#删除一个
docker rm 容器ID  
docker rm -f 容器ID  #强制删除
 
 
#删除多个
docker rm -f $(docker ps -a -q)
或
docker ps -a -q | xargs docker rm
  1. 查看容器日志
docker logs 容器ID
  1. 查看容器内运行的进程
docker top 容器ID
  1. 查看容器内部细节

查看其json文件

docker inspect 容器ID
  1. 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径

例如:
docker cp 3d26bf46bbb0:/home/ubuntu/a.txt /root/test
  1. 导入和导出容器
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

挂载数据卷

如何理解

就是宿主机与docker容器之间的文件进行一个同步操作,例如:当我指定某个宿主机目录与docker容器中的某个目录进行数据卷挂载的时候,那么无论是我操作宿主机中的这个目录,还是docker容器中的目录时,他们之间都会进行数据共享,使两者目录的内容保持一致

数据卷的特点

  1. 数据卷可在容器之间共享或重用数据
  2. 卷中的更改可以直接生效
  3. 数据卷中的更改不会包含在镜像的更新中
  4. 数据卷的生命周期一直持续到没有容器使用它为止

使用:

首先在宿主机上面创建一个目录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

本地镜像发布到阿里云

首先登录阿里云,然后进入控制台

然后可以在快捷入口这里添加一个容器镜像服务

点击进去选择个人版或者企业版即可

然后设置密码:

创建命名空间:

接着创建镜像仓库:

最后会给你一个操作指南,跟着做就行