docker


Docker

1. 概述

1.1 为什么

我的代码在我的机子上能跑,在你的机子上竟然崩了!!!docker解决这个问题!

1.2 是什么

通过docker直接把运行环境打包且跨平台。隔离是docker的核心思想。

1.3 怎么做

image-20210604194813470

通过Docker Engine 直接使用宿主机的内核,相比虚拟机少了一层Guest OS的抽象层,所以占用空间少。

2. 常用命令

官方命令地址:docker login | Docker Documentation

docker verison # 显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #万能命令

2.1 搜索

docker search

docker search mysql --filter=STARS=3000

2.2 拉取

docker pull 
# docker pull 镜像名字:tag
# 如果不写tag就下载最新的 latest
# 

2.3 运行

docker run [可选参数] image

--name="name" #名字
-d #后台运行
-it #交互方式进行
-p 指定容器的端口, -p 8080:8080
-P 随机指定端口

2.4 列出容器

docker ps 正在运行
-a 正在运行+历史运行

2.5 退出容器

exit #直接退出容器并停止
Ctrl + P + Q #容器不停止退出

2.6 删除容器

docker rm id #镜像是rmi
docker rm -f $(docker ps -aq)

2.7 停止容器

docker stop id
docker kill id
docker start id
docker restart id

2.8 查看内部信息

docker top id # 查看内部信息

2.9 常用其他命令

2.9.1 后台启动命令

docker run -d centos

# 问题docker ps 如果退出会停止,容器使用后台进程,容器中必须要有一个进程在跑着,不然就自动停了。

2.9.2 查看日志

docker logs -ft --tail 10 容器id #查看id容器的日志,且一开始打印最新的10条log(如果还有新日志,会一直增加显示新日志)
docker inspect 容器id # 查看容器信息

2.9.3 进入当前容器

docker exec -it 容器id /bin/bash # 进入容器后开启新的终端,可以在里面操作(常用)
docker attach 容器id # 进入容器正在执行的终端,不会启动新的进程

2.9.4 容器内的文件拷贝到机子上

# 进入容器后!!!
docker cp 容器id:/dir/XXX.java /home

文章作者: 小灰灰
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小灰灰 !
评论
  目录