这里写自定义目录标题
docker
1.安装
在 ubuntu20.04 上使用如下命令(前提是ubuntu配置好了网络,可以正常上网)
sudo apt update
sudo apt install docker.io
docker --version
2.修改docker源
由于 docker 默认镜像仓库在海外,所以需要配置国内源来加快镜像拉取速度,配置 /etc/docker/daemon.json
,如果没有该文件就自己创建。
cd /etc/docker
sudo touch daemon.json
sudo vi daemon.json
在文件里面添加如下内容:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com"
]
}
修完完成后使用命令sudo systemctl restart docker
重启docker
然后使用docker info | grep -E "registry-http"
查看是否修改成功
docker 使用
docker ps
docker ps
可以查看目前正在运行的容器
此时没有一个容器在运行,-a 参数是显示所有的容器,上图中的参数含义如下:
- CONTAINER ID:它是指容器的id,是一个64位的十六进制数表示的唯一的标识符,在不会混淆的情况下,可以只使用前面几位数标识一个容器。
- IMAGE:表示创建容器时使用的镜像
- COMMAND:表示容器最后运行的命令
- CREATED:创建容器的时间
- STATUS:容器的状态,可能显示一个容器的启动时间,或者关闭时间。
- PORTS:对外开放的端口
- NAMES:容器的名字,如果不设置,有一个默认的名字
添加 -l
参数可以查看最近创建的容器,docker ps -n=2
用来查看最近创建的2个容器,docker ps -n=8
用来查看最近创建的8个容器,以此类推。
创建容器
创建容器分为有两种方法,一种是先创建、然后启动,也可以创建、启动一步到位,两个流程都差不多,执行创建命令的时候,会在本地搜索是否有这个镜像,如果没有就去docker hub
上搜索,如果搜索到了就会下载到本地,然后利用镜像创建一个容器并启动。
docker create命令
docker create nginx
docker ps -a // 创建完成后查看是否完成
使用create命令时候,添加 --name=xxx
可以给容器一个NAME
docker create --name=nginx nginx
docker run命令
docker run
命令,用于启动一个容器,如果本地有就直接启动,本地没有就会去docker hub
上面搜索,然后下载到本地,一般应用分为两种类型,一种是后台执行(nginx),一种需要和用户进行交互(比如bash)
以启动nginx为例
docker urn --name nginxTest -d -p 8080:80 nginx
–name 也是表示取一个名字,-d表示在后台运行,-p表示将容器的80的端口映射到宿主机的8080端口
在游览器中打开 宿主机ip:端口,会出现如下界面
下面创建ubuntu容器,它是一个交互式容器,说白了就是一个bash
docker run --name ubuntu -it ubuntu /bin/bash
其中 -it 参数,-i 表示开发容器的标准输入(STDIN),t表示告诉docker,为容器创建一个命令行终端,运行成功后就可以在docker里面使用bash,输入exit命令退出。
docker start命令
对于已经存在的容器,可以使用docker start
命令来启动容器,使用该命令需要指定启动容器的id或者是name,使用如下:
docker start [id | 或者name]
可以使用id的前面几位数就可以表示整个容器
docker stop命令
可以通过docker stop
去停止一个容器,使用如下:
容器的删除
可以通过docker rm
删除一个没有运行的容器,如果要删除在运行的容器可以在后面加上一个-f
参数,删除的时候需要提供id或者name,使用如下:
也可以批量删除
docker rm $(docker ps -a -q)
docker ps -a -q
:会列出所有容器的id,提供给rm
删除
docker inspect 命令
docker inspect
命令可以查看容器的详细信息,使用时需要提供容器的id或者name
docker inspect nginx // 提供name
docker inspect 8210 // 提供容器对应的id
可以使用format
参数查看用户关心的数据
docker inspect -f = '{{.NetworkSettins.IPAddress}}' 容器名/id
docker top命令
可以使用docker top
查看容器中正在运行的进程,首先要保证容器已经启动。
docker logs命令
docker logs [容器名/id] //用于查看这个容器的日志
docker logs -f [容器名/id] //用于实时查看这个容器的日志,当日志变化会立马看到
docker logs -f --tail=3 -t [容器名/id] // --tail显示最后面的3条, -t表示显示时间
镜像简介
docker images
docker images
查看镜像
docker search
docker search
用于去 docker hub
上面搜索符合要求的镜像
docker search mariadb
其中stars越高越可以放心使用,official表示是否为官方镜像,automated:是否使用了自动构建
docker rmi
docker rmi
用于删除镜像,有时候遇到无法删除的镜像,需要将依赖于该镜像的所有容器都删掉,才能删除镜像
docker rmi [镜像名/镜像id]