【5分钟学Docker】Docker快速使用
目录
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 nginx
2.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 ID
2.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/bash
2.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 statsCONTAINER 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 192MB
3. 高级操作
- 查询所有的容器的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 always
4. 挂载
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