目录
1. 概述
2. 基本操作
2.1. 镜像操作
2.2. 容器操作
2.3. 运行操作
2.4. 镜像保存
2.5. 镜像分享
3. 高级操作
4. 挂载
4.1. 目录挂载
4.2. 卷映射
1. 概述
Docker 镜像有镜像名称和TAG

2. 基本操作
2.1. 镜像操作
- 查看镜像
docker images 
docker image ls- 删除镜像
docker rmi imagesID
docker rmi 名称:TAG- 下载镜像
docker pull nginx:1.26.0- 搜索镜像
docker search nginx2.2. 容器操作
容器是运行起来的镜像
- 运行容器
docker run- 查看运行的容器
docker ps- 停止/启动/重启
docker stop/start/restart CONTAINER_ID
docker stop/start/restart NAMES- 进入镜像
docker exec -it xxxxxNAMES /bin/bash- 查看日志
# 动态获取
docker logs -f 
# 静态查看
docker logs- 删除
docker rm ID
# 强制删除
docker rm -f ID2.3. 运行操作
- 容器的端口可以重复,但是外部机器的端口不能重复
docker run -p <主机端口>:<容器端口> <镜像名>
docker run -d --name mynginx -p 88:80 ngxin:TAG
-d: 后台运行
--name:容器名称
-p 端口映射: 80:88 内部80 外部访问88- 进入容器进行操作
docker exec -it <容器名称> 交换脚本
docker exec -it mynginx /bin/bash2.4. 镜像保存
- 通过docker run 运行后,进行自定义安装或者修改一些配置
- 然后提交修改内容:这里的mynginx是一个运行的容器
docker commit -m 'update index.thml' mynginx  mynginx:V1.0
[root@sda ~]# docker commit -m 'update index.html' mynginx mynginx:V1.0
sha256:6d11a54e6725515d5559bf96fa6aeeda4b1daf79887eb78e6c3befeaadad27a0- 提交后,通过docker images 可以看到有镜像 myginx V1.0

- 然后在对镜像进行保存成tar便于转移到其他机器上
docker save -o mynginx.tar mynginx:V1.0- 加载镜像
 docker load -i mynginx.tar  -q
 -i 加载tar的文件
 -q 表示加载过程中不展示加载信息- 运行
 docker run --name mynginx --rm -d -p 89:80 mynginx:V1.0- 查看容器的占用
docker stats
CONTAINER ID        NAME                               CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
9b54842016a0        mynginx                            0.00%               10.33MiB / 31.26GiB   0.03%               2.73kB / 2.05kB     0B / 0B             17
e2b4c27dbe59        work_nginx-server_1                0.00%               78.02MiB / 31.26GiB   0.24%               32.7GB / 32.5GB     7MB / 0B            17
2.5. 镜像分享
# 改名
docker tag 旧名字 新名字 # 这个会复制一个新的,而不是直接改,可以把之前的删除就行了
docker tag mynginx:V1.0 mynginx:V2.0
[root@sda ~]# docker images
REPOSITORY   TAG    IMAGE ID            CREATED             SIZE
mynginx      V1.0   6d11a54e6725        15 hours ago        192MB
mynginx      V2.0   6d11a54e6725        15 hours ago        192MB3. 高级操作
- 查询所有的容器的ID
docker ps -aq
-a : 所有的镜像
-q : 只打印容器ID
[root@sda ~]# docker ps -aq
9b54842016a0
e2b4c27dbe59
694eeba1ae38
975bb0ad0124
0c0f3ddc3b79- 删除所有的容器
docker rm -f $(docker ps -aq)
-f:强制删除- 开机启动
docker --restart always4. 挂载
4.1. 目录挂载
容器一旦重启或者重新创建,那么文件数据都是丢失,所以这个时候需要通过挂载目录,实现数据持久化
使用参数
-v /aa/aaa:/aaaa/bbb
-v 主机目录:容器内目录
如果一开始没有/aa/aaa 那么他会自动创建。docker会以外部的数据为准,所以外部没有数据
那么内部也是没有数据的4.2. 卷映射
当我们通过目录挂载时,会发现因为-v是以外部为主,所以当我们使用目录挂载,比如挂载容器的内部的默认配置文件时,会出现如果外部没有这些配置文件,那么就会导致出现内部也没有,那么容器就可能会启动失败,所以这个时候就需要用到卷映射
卷映射
-v 卷名:/etc/nginx
卷名不以./ 为名称就是卷名,否是就是目录挂载
docker run -d -p 89:80 --name mynginx -v /tmp/nginx/html:/usr/share/nginx/html -v ngconfig:/etc/nginx mynginx:V2.0卷的数据都在哪里呢:默认都在/var/lib/docker/volumes/卷名/_data下
[root@sda html]# cd /var/lib/docker/volumes/ngconfig/
[root@sda ngconfig]# ls
_data
[root@sda ngconfig]# cd _data/
[root@sda ngconfig]# ls
conf.d  fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params
[root@sda _data]# pwd
/var/lib/docker/volumes/ngconfig/_data
- 卷操作
1. 查看卷
docker volume ls 
2. 创建卷
docker volume create test
3. 查看某个卷的详情
docker volume inpspect test


















