- Docker简介
- 镜像
- 相关命令
- 拉取镜像
- 修改镜像位置
- 容器
- 相关命令
- docker run
- docker exec
- docker ps
- docker cp
- docker命令
- 容器生命周期管理
- 容器操作
- 容器rootfs命令
- 镜像仓库
- 本地镜像管理
Docker是一个开源的应用容器引擎。 Docker简介
Docker采用C/S架构模式,使用远程API来管理和创建Docker容器。
docker镜像可理解为包含了OS文件系统和应用的对象,等价于未运行的容器。
使用WSL2版本docker时,会创建两个镜像(wsl -l -v):
PS C:WINDOWSsystem32> wsl -l -v NAME STATE VERSION * Ubuntu Running 2 docker-desktop Running 2 docker-desktop-data Running 2
docker-desktop是存放程序的,docker-desktop-data是存放镜像的。
相关命令镜像操作命令(image-id为镜像ID,类似UUID):
- docker images:查看本机上的镜像;
- docker pull
[:tag]:拉取镜像; - docker rmi
:移除镜像;移除所有镜像 - docker tag
: :重命名镜像docker rmi $(docker images -q) - docker save
> file.tar:保存镜像; - docker load < file.tar:加载镜像;
使用docker pull
docker pull mysql
修改镜像位置修改镜像存放位置需要:
-
备份原来的镜像;
wsl --export docker-desktop D:Programmedockerdocker-desktop.tar wsl --export docker-desktop-data D:Programmedockerdocker-desktop-data.tar
-
删除镜像;
wsl --unregister docker-desktop wsl --unregister docker-desktop-data
-
重新创建镜像;
wsl --import docker-desktop D:Programmedockerdesktop D:Programmedockerdocker-desktop.tar --version 2 wsl --import docker-desktop-data D:Programmedockerdesktop-data D:Programmedockerdocker-desktop-data.tar --version 2
修改镜像存放位置后需要重启docker服务。
容器镜像拉到本地后,通过即可运行以启动容器:
docker run -it
cmd为运行的命令:
- linux下一般为/bin/bash
- windows下一般为pwsh.exe
启动后会自动切换进入到容器中(执行bash时)。
相关命令容器操作相关命令:
- 查看容器:docker ps查看运行容器,docker ps -a查看所有容器;
- 运行容器:docker run -it
; - 连接已运行容器:docker exec -it
- 启动容器:docker start
; - 停止容器:docker stop
,停止所有容器docker stop $(docker ps -a -q); - 删除容器:docker rm
,删除所有容器docker rm $(docker ps -a -q);
docker run创建一个新的容器并运行一个命令:
docker run [options]
options:
- -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -P: 随机端口映射,容器内部端口随机映射到主机的端口
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- –name=“nginx-lb”: 为容器指定一个名称;
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h “mars”: 指定容器的hostname;
- -e username=“ritchie”: 设置环境变量;
- –env-file=[]: 从指定文件读入环境变量;
- –cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
- -m :设置容器使用内存最大值;
- –net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- –link=[]: 添加链接到另一个容器;
- –expose=[]: 开放一个端口或一组端口;
- –volume , -v: 绑定一个卷
docker exec在已运行的容器中执行命令:
docker exec [options]
options(常使用-it来连接已运行容器,用于执行命令):
- -d :分离模式: 在后台运行
- -i :即使没有附加也保持STDIN 打开
- -t :分配一个伪终端
docker ps用于列出容器:
docker ps [options]
options:
- -a :显示所有的容器,包括未运行的。
- -f :根据条件过滤显示的内容,条件以key=value形式。
- –format :指定返回值的模板文件。
- -l :显示最近创建的容器。
- -n :列出最近创建的n个容器(如ps -n 3列出3个容器)。
- –no-trunc :不截断输出。
- -q :静默模式,只显示容器编号。
- -s :显示总的文件大小
获取名称包含‘develop’,且状态为exited或dead的容器ID:
docker ps -q --filter name=.*develop.* --filter status=exited --filter status=dead
docker cp在容器与主机间复制文件(文件夹时自动复制子文件):
docker cp [OPTIONS] container:src_path dest_path docker cp [OPTIONS] dest_path container:src_path
容器中的路径是相对于容器的根目录(/)的;主机路径是相对于当前目录的。
options:
- -a: 存档模式(复制所有uid/gid信息)
- -L: 保持源目标中的链接
所有docker命令都是docker +
- docker version:显示docker信息(Client与Server的版本、系统架构等);
- docker info:显示docker相关系统信息(运行、暂停、停止的容器数量、镜像数量,存储驱动类型,硬件信息等);
容器生命周期相关命令:
- run:运行一个容器;
- start/stop/restart:启动、停止、重启容器;
- kill:杀掉容器;
- rm:删除容器;
- pause/unpause:暂停、恢复容器;
- create:创建新的容器;
- exec:在运行容器中执行命令;
容器相关操作:
- ps:列出容器;
- inspect:获取容器/镜像的元数据;
- top:查看容器中运行的进程信息;
- attach:连接到正在运行的容器;
- events:从服务器获取实时事件;
- logs:获取容器日志;
- wait:阻塞运行直到容器停止,然后打印出其退出码;
- export:导出文件系统为一个tar文件;
- port:累出指定容器得到端口映射;
- commit:从容器中创建一个新的镜像
- cp:容器与主机间的数据拷贝;
- diff:检查容器里文件结构的更改;
镜像仓库相关操作:
- login/logout:登录、登出镜像仓库;
- pull:从江西仓库中拉取或更新指定镜像;
- push:将本地镜像上传到镜像仓库;
- search:从docker hub查找镜像;
本地镜像相关操作:
- images:列出本地镜像;
- rmi:删除本地镜像;
- tag:标记本地镜像;
- build:使用dockerfile创建镜像;
- history:查看镜像创建历史;
- save:将制定镜像保存为tar文件;
- load:导入save保存的tar镜像文件;
- import:从归档文件中创建镜像;


![[Util]-Docker使用简介 [Util]-Docker使用简介](http://www.mshxw.com/aiimages/31/300011.png)
