docker安装
大约 4 分钟
docker安装
官网:https://hub.docker.com/
文档:https://docs.docker.com/
下载地址:https://docs.docker.com/desktop/install/windows-install/
常用
创建文件夹 mkdir
mkdir hopme
创建文件 touch
touch hellow.java
打开文件 vim
vim hellow.java
查看文件 cat
cat hellow.java
查看当前路径 pwd
pwd
查看容器日志
docker logs 容器id
docker复制
注意:命令是在容器外面使用的,不要在容器内部去使用 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp 96f7f14e99ab:/www /tmp/
docker镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决 CDN加速配置:反向代理服务 1、打开地址https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,找到镜像加速器

在docker客户端配置Docker Engine,这个就是daemon.jon配置文件

{
"features": {
"buildkit": true
},
"experimental": false,
"registry-mirrors": [
"https://g78ax16j.mirror.aliyuncs.com"
]
}
查看docker版本信息
docker --version
显示docker系统信息
显示docker系统信息、包括镜像及容器数量
docker info
帮助命令
docker --help
镜像命令
查看所有本地的主机上的镜像
docker images

- REPOSITORY: 仓库中镜像名称
- TAG: 镜像的标签信息,比如 5.7、latest 表示不同的版本信息;
- IMAGE ID:镜像的 ID, 如果您看到两个 ID 完全相同,那么实际上,它们指向的是同一个镜像,只是标签名称不同罢了;
- CREATED:镜像最后的更新时间;
- SIZE: 镜像的大小,优秀的镜像一般体积都比较小,这也是我更倾向于使用轻量级的 alpine 版本的原因;
拉取镜像
命令:docker pull 镜像名称
- 比如拉取mysql镜像
- docker pull mysql
- 拉取指定版本可以 冒号后面是版本号
- docker pull mysql:5.7.35
删除镜像
docker rmi -f 镜像id 删除单个镜像
docker rmi -f 镜像id 镜像id 删除多个镜像
删除所有镜像
docker rmi -f $(docker images aq) 递归删除所有镜像
容器命令
说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
创建容器
docker run [可选参数] 镜像名称[:版本号] -it [/bin/bash]
可选参数说明:
--name="nginx-lb": 为容器指定一个名称
-d: 后台运行容器,容器处于守护进程运行,并返回容器ID;
-it:使用交互方式运行,进入容器查看内容
-p:指定容器的端口(端口映射) 例如: -p 3306:3306
-P:表示随机指定端口
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-v 可以挂在宿主机目录至容器目录,如-v /data:/tmp/data,左边为宿主机目录,右边为容器目录。
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
实例 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。 latest:最新版本
docker run -it --name mynginx -d nginx:latest
启动并进入容器
docker run -it centos /bin/bash
/bin/bash:表示给一个控制台来运行

查看容器中的文件

后台启动容器
docker run -d 镜像名 问题:发现后台启动容器后,容器自动停止了 常见的坑
- docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自己停止
- nginx,容器启动后,发现自己没有提供服务,就会立即停止,就是没有程序了 tomcat:tomact可以使用这种方式,不会立即停止 所有应该使用
- docker run -it centos /bin/bash

进入容器
docker exec -it 容器id /bin/bash #进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach 容器id #进入容器正在执行的终端,不会启动新的终端
退出容器
/etc/nginx/nginx.conf exit #直接退出容器并且容器停止运行

快捷键:ctrl+p+Q #不停止容器运行退出容器

查看容器
- docker ps #查看正在运行的容器
- docker ps -a #查看已停止运行的容器
- docker ps -a -n=1 #显示最近创建的容器
- docker ps -aq #显示容器的编号
启动和停止容器操作
- docker start 容器id #启动容器
- docker restart容器id #重启容器
- docker stop 容器id #停止当前正在运行的容器
- docker kill 容器id #强制停止正在运行的容器
删除容器
- -f:表示强制删除
- docker rm -f 容器id #删除单个容器
- docker rm -f 容器id 容器id #删除多个容器
- docker rm -f $(docker ps -aq) #删除所有容器
- docker contalners prune #删除所有没有运行的容器