1.删除docker镜像文件
先查看镜像是否运行,如果运行的话需要做以下操作然后再删除
#查看docker容器正在运行的项目
docker ps -a
#通过容器id暂停并删除容器id
docker stop 容器id
#删除容器
docker rm 容器id
最后就可以删除镜像文件
-f 强制删除
docker rmi 镜像id -f
2.执行Dockerfile生成镜像
#docker build -f Dockerfile -t react-go-www123:latest .
-f flag 是我们的dockerfile
-t tag 是镜像标签
最后的(.) 命令式当前文件夹下的Dockerfile
3.创建容器
# -d设置后台运行 8181为访问端口ip 8080项目中设置的端口ip
docker run -it -d --name test01 -p 8181:8877 -v /xxx:/xxx:rslave test-go-1:latest
参数说明
-p # 主机端口:容器端口
-it # 后台交互式运行
-d # 后台方式运行
--name # 取容器别名,例如test01
--restart=always # 开机自启
-v /xxx:/xxx:rslave # 文件夹映射:容器文件夹:模式的命令
test-go-1:latest # 构建的镜像的名字
4.查看Docker容器运行日志命令
docker logs -f 容器id
#实时查看容器日志最新10行
docker logs -f --tail 10 容器id
5.docker常用操作
5.1 docker images
查看所有本地的主机上的镜像
解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小
命令的可选项
-a , --all #列出所有镜像
-q , --quiet #只显示镜像的id
5.2 docker search
搜索镜像
解释
NAME #名称
DESCRIPTION #描述
STARS #收藏的数量
OFFICIAL #
AUTOMATED #
可选项,通过搜索来过滤
–filter=STARS = 3000 # 搜索出来的镜像就是START大于3000
5.3 docker pull
下载镜像
docker pull mysql
Using default tag: latest #不写tag,默认选择最新latest
latest: Pulling from library/mysql
72a69066d2fe: Pull complete #分层下载,docker image的核心 联合文件系统
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709 #签名
Status: Downloaded newer image for mysql:latest
#指定版本下载
docker pull mysql:5.7
查看mysql支持的版本
https://hub.docker.com/_/mysql
5.4 docker run [可选参数] image
新建容器并启动
# 参数说明
--name="Name" # 容器名称 aaa01 aaa02 用来区分容器
-d # 后台方式运行
-it # 使用交互方式运行,进入容器查看内容
-p # 指定容器的端口 -p 8080:8181
-p ip:主机端口:容器端口
-p 主机端口:容器端口 (常用的,并推荐使用)
-p 容器端口
容器端口
-P # 随机指定端口
# 测试,启动并进入容器
# -it
[root@VM-16-9-centos ~]# docker run -it centos /bin/bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
[root@8a61dd5728da /]#
# 从容器中退回主机
[root@8a61dd5728da /]# exit
[root@root /]#
5.5 具名和匿名挂载
所有的docker容器内的卷,没有指定目录,默认在
/var/lib/docker/volumes/xxxx/_data
我们通过具名挂载可以方便的找到我们的一个卷,大多数情况用具名挂载
-v 数据卷的英文缩写
# 如何确定是具名挂载还是匿名挂载,还是指定路径挂载
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径::容器内路径 #指定路径挂载
指定数据卷映射相关参数:
ro -- readonly 只读
rw -- readwrite 可读可写(默认)
docker run -d -p 主机端口:容器端口 -v www123:/www123:ro 镜像名:版本
docker run -d -p 主机端口:容器端口 -v www123:/www123:rw 镜像名:版本
查看指定的数据卷信息的命令:docker inspect 容器id或者数据卷名
docker xxx --help
查看docker命令的可选项
# 进入当前正在运行的容器
# 方式一
docker exec -it 容器id /bin/bash
# 方式二
docker attach 容器id
# 查看镜像的元数据
docker inspect 容器id
# 查看所有容器
docker ps -a
# 停止容器运行
docker stop 容器id
# 开启容器运行
docker start 容器id
# 重启容器
docker restart 容器id
# 删除容器
docker rm 容器id
# 列出所有容器信息
docker ps -a
# 修改容器名称
dokcer rename aaa(旧容器名称) bbb(新容器名称)
# 查看容器进程信息
docker stats aaa(容器名称)
# 查看容器执行日志
docker logs aaa(容器名称)
# 查看容器中运行的进程信息
docker top aaa(容器名称)
# 杀掉一个运行中的容器
docker kill aaa(容器名称)
# -f 强制删除docker镜像
# rmi 中i就是image 镜像的意思
docker rmi 镜像id -f
# 删除docker所有包含none名称的容器名
docker rmi $(docker images | grep "none" | awk '{print $3}') -f
# 停用docker中的所有容器
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
#start启动所有停止的容器
docker start $(docker ps -a -q)
#stop停止所有容器
docker stop $(docker ps -a -q)
#remove删除所有容器
docker rm $(docker ps -a -q)
#删除所有镜像
docker rmi $(docker images -q)
#删除所有的 docker ps -a 记录
docker rm `docker ps -a -q`
docker的线上镜像
https://hub.docker.com/
参考文档::
https://docs.docker.com/reference/