diff --git a/2024/01/19/docker/index.html b/2024/01/19/docker/index.html index abffc8e..7bb15ab 100644 --- a/2024/01/19/docker/index.html +++ b/2024/01/19/docker/index.html @@ -26,7 +26,7 @@ - + @@ -436,7 +436,7 @@
docker ps
列出正在运行的容器docker ps -a
列出所有的容器docker rm
删除某个容器docker exec
(-it
+docker exec
(-it mycontainer
/bin/sh)进入某一个容器; docker exit
退出某个容器docker stop container-id
停止指定 id
diff --git a/local-search.xml b/local-search.xml
index 6b17f34..98c35fe 100644
--- a/local-search.xml
+++ b/local-search.xml
@@ -62,7 +62,7 @@
Docker是一个应用打包、分发、部署的工具,也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。
特性 | 普通虚拟机 | Docker |
---|---|---|
跨平台 | 通常只能在桌面级系统运行,例如Windows/Mac,无法在不带图形界面的服务器上运行 | 支持的系统非常多,各类 windows 和 Linux 都支持 |
性能 | 性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了 | 性能好,只虚拟软件所需运行环境,最大化减少没用的配置 |
自动化 | 需要手动安装所有东西 | 一个命令就可以自动部署好所需环境 |
稳定性 | 稳定性不高,不同系统差异大 | 稳定性好,不同系统都一样部署方式 |
镜像加速器 | 镜像加速器地址 |
---|---|
Docker 中国官方镜像 | https://registry.docker-cn.com |
DaoCloud 镜像站 | http://f1361db2.m.daocloud.io |
Azure 中国镜像 | https://dockerhub.azk8s.cn |
科大镜像站 | https://docker.mirrors.ustc.edu.cn |
阿里云 | https://ud6340vz.mirror.aliyuncs.com |
七牛云 | https://reg-mirror.qiniu.com |
网易云 | https://hub-mirror.c.163.com |
腾讯云 | https://mirror.ccs.tencentyun.com |
加入以下命令:=="registry-mirrors":["https://registry.docker-cn.com,https://hub-mirror.c.163.com"]==
Docker 官方镜像仓库查找 Redis :https://hub.docker.com/
找到如下的命令:
1 |
|
首先先从远端拉取镜像,可以指定版本或者是最新的版本
接着本地进行run
1 |
|
命令参考:
docker run
运行一个容器(-d后台运行、--name重命名container)docker stop
停止运行一个容器docker ps
列出正在运行的容器docker ps -a
列出所有的容器docker rm
删除某个容器docker exec
(-it/bin/sh)进入某一个容器; docker exit
退出某个容器docker stop container-id
停止指定 id的容器docker start container-id
启动某个id容器docker images
查看镜像列表docker rm container-id
删除指定 id 的容器docker rmi image-id
删除指定 id 的镜像docker volume ls
查看 volume 列表docker network ls
查看网络列表docker-compose up
表示的意思是在docker-compose.yml的文件夹所在的位置运行如下docker-compose up -d
后台运行只需要加一个 -d 参数docker-compose ps
查看运行状态docker-compose stop
停止运行docker-compose
重启docker compose的服务docker-compose restart service-name
重启单个服务docker-compose exec service-name sh
进入容器命令行Dockerfile
是用于创建自定义Docker镜像的文件,其主要作用包括配置文件、挂载点、对外暴露的端口和设置环境变量
容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。如果删除了容器,也就删除了其最上面的读写层,文件改动也就丢失了。Docker使用存储驱动管理镜像每层内容及可读写层的容器层。
FROM 镜像
指定新镜像所基于的基础镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条 FROM 指令
1 |
|
MAINTAINER 名字
说明新镜像的维护人信息
1 |
|
WORKDIR 路径 为后续的 RUN、CMD、ENTRYPOINT指定工作目录
这里定义的目录相当于是在docker的文件夹下定义新的目录并会将本地的文件内容上传上去
1 |
|
RUN 命令
在所基于的镜像上执行命令,并提交到新的镜像中
1 |
|
CMD ["要运行的程序", "参数1", "参数2"]
Dockerfile只能有一条CMD命令。如果指定多条命令,只执行最后一条命令。
1 |
|
EXPOSE 端口号
指定新镜像加载到 Docker 时要开启的端口
1 |
|
ENV 环境变量 变量值
设置一个环境变量的值,会被后面的 RUN 使用
1 |
|
ADD 源文件/目录 目标文件/目录
将源文件复制到镜像中,源文件要与 Dockerfile
位于相同目录
例子本地的文件在/Workspace/ApiService
中,这个时候会将本地的/Workspace/ApiService
目录下所有的文件送到docker
中的/Workspace/ApiService/docker
中
1 |
|
VOLUME [“目录”] 在容器中创建一个挂载点
要运行 Dockerfile 文件,需要使用 Docker 工具。Docker可以在不同的操作系统上运行,包括 Windows、macOS 和各种 Linux发行版。以下是一些运行 Dockerfile 的步骤:
在官网上下载并安装 Docker工具,根据你的操作系统选择对应版本。安装完成后,可以在终端中运行docker
命令来检查是否安装成功。
打开终端,进入 Dockerfile 所在目录。可以使用cd
命令切换目录。
使用以下命令构建 Docker 镜像:
1 |
|
其中 -t
参数用于指定镜像的名称,.
表示 Dockerfile所在目录。执行该命令后,Docker 会根据 Dockerfile文件中的指令创建镜像。
使用以下命令运行 Docker 容器:
1 |
|
其中 -p
参数用于指定主机端口和容器端口的映射关系,<镜像名称>
是在第 3 步中指定的镜像名称。执行该命令后,Docker会在后台启动一个容器,并将容器的标准输出输出到终端中。如果 Dockerfile中没有指定端口,需要在运行容器时指定 -p
参数,并将容器端口映射到主机上的一个端口。否则,容器会启动失败。
-d
表示的当前的容器可以在后台运行
--name
表示给指定的容器起个名字,否则会随机生成名字
使用如下命令停止:
1 |
|
其中,<container-id>
是要停止的容器的 ID。可以使用以下命令查看正在运行的容器列表:
1 |
|
如果要停止所有容器,可以使用以下命令:
1 |
|
其中,docker ps -aq
命令用于列出所有容器的 ID。
如果项目依赖更多的第三方软件,我们需要管理的容器就更加多,每个都要单独配置运行,指定网络。使用docker-compose把项目的多个服务集合到一起,一键运行。要把项目依赖的多个服务集合到一起,我们需要编写一个docker-compose.yml
文件,描述依赖哪些服务
在dockerhub在安装wordpress的时候,所需要的服务非常多,所以需要把项目依赖的多个服务集合到一起
1 |
|
首先编写一个:docker-compose.yml
接着在docker-compose.ym==l文件所在的位置==执行:docker-compose up
就可以了
注意:执行完docker-composeup之后就已经生成容器并已经成功run起来了
]]>Docker是一个应用打包、分发、部署的工具,也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。
特性 | 普通虚拟机 | Docker |
---|---|---|
跨平台 | 通常只能在桌面级系统运行,例如Windows/Mac,无法在不带图形界面的服务器上运行 | 支持的系统非常多,各类 windows 和 Linux 都支持 |
性能 | 性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了 | 性能好,只虚拟软件所需运行环境,最大化减少没用的配置 |
自动化 | 需要手动安装所有东西 | 一个命令就可以自动部署好所需环境 |
稳定性 | 稳定性不高,不同系统差异大 | 稳定性好,不同系统都一样部署方式 |
镜像加速器 | 镜像加速器地址 |
---|---|
Docker 中国官方镜像 | https://registry.docker-cn.com |
DaoCloud 镜像站 | http://f1361db2.m.daocloud.io |
Azure 中国镜像 | https://dockerhub.azk8s.cn |
科大镜像站 | https://docker.mirrors.ustc.edu.cn |
阿里云 | https://ud6340vz.mirror.aliyuncs.com |
七牛云 | https://reg-mirror.qiniu.com |
网易云 | https://hub-mirror.c.163.com |
腾讯云 | https://mirror.ccs.tencentyun.com |
加入以下命令:=="registry-mirrors":["https://registry.docker-cn.com,https://hub-mirror.c.163.com"]==
Docker 官方镜像仓库查找 Redis :https://hub.docker.com/
找到如下的命令:
1 |
|
首先先从远端拉取镜像,可以指定版本或者是最新的版本
接着本地进行run
1 |
|
命令参考:
docker run
运行一个容器(-d后台运行、--name重命名container)docker stop
停止运行一个容器docker ps
列出正在运行的容器docker ps -a
列出所有的容器docker rm
删除某个容器docker exec
(-it mycontainer
/bin/sh)进入某一个容器; docker exit
退出某个容器docker stop container-id
停止指定 id的容器docker start container-id
启动某个id容器docker images
查看镜像列表docker rm container-id
删除指定 id 的容器docker rmi image-id
删除指定 id 的镜像docker volume ls
查看 volume 列表docker network ls
查看网络列表docker-compose up
表示的意思是在docker-compose.yml的文件夹所在的位置运行如下docker-compose up -d
后台运行只需要加一个 -d 参数docker-compose ps
查看运行状态docker-compose stop
停止运行docker-compose
重启docker compose的服务docker-compose restart service-name
重启单个服务docker-compose exec service-name sh
进入容器命令行Dockerfile
是用于创建自定义Docker镜像的文件,其主要作用包括配置文件、挂载点、对外暴露的端口和设置环境变量
容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。如果删除了容器,也就删除了其最上面的读写层,文件改动也就丢失了。Docker使用存储驱动管理镜像每层内容及可读写层的容器层。
FROM 镜像
指定新镜像所基于的基础镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条 FROM 指令
1 |
|
MAINTAINER 名字
说明新镜像的维护人信息
1 |
|
WORKDIR 路径 为后续的 RUN、CMD、ENTRYPOINT指定工作目录
这里定义的目录相当于是在docker的文件夹下定义新的目录并会将本地的文件内容上传上去
1 |
|
RUN 命令
在所基于的镜像上执行命令,并提交到新的镜像中
1 |
|
CMD ["要运行的程序", "参数1", "参数2"]
Dockerfile只能有一条CMD命令。如果指定多条命令,只执行最后一条命令。
1 |
|
EXPOSE 端口号
指定新镜像加载到 Docker 时要开启的端口
1 |
|
ENV 环境变量 变量值
设置一个环境变量的值,会被后面的 RUN 使用
1 |
|
ADD 源文件/目录 目标文件/目录
将源文件复制到镜像中,源文件要与 Dockerfile
位于相同目录
例子本地的文件在/Workspace/ApiService
中,这个时候会将本地的/Workspace/ApiService
目录下所有的文件送到docker
中的/Workspace/ApiService/docker
中
1 |
|
VOLUME [“目录”] 在容器中创建一个挂载点
要运行 Dockerfile 文件,需要使用 Docker 工具。Docker可以在不同的操作系统上运行,包括 Windows、macOS 和各种 Linux发行版。以下是一些运行 Dockerfile 的步骤:
在官网上下载并安装 Docker工具,根据你的操作系统选择对应版本。安装完成后,可以在终端中运行docker
命令来检查是否安装成功。
打开终端,进入 Dockerfile 所在目录。可以使用cd
命令切换目录。
使用以下命令构建 Docker 镜像:
1 |
|
其中 -t
参数用于指定镜像的名称,.
表示 Dockerfile所在目录。执行该命令后,Docker 会根据 Dockerfile文件中的指令创建镜像。
使用以下命令运行 Docker 容器:
1 |
|
其中 -p
参数用于指定主机端口和容器端口的映射关系,<镜像名称>
是在第 3 步中指定的镜像名称。执行该命令后,Docker会在后台启动一个容器,并将容器的标准输出输出到终端中。如果 Dockerfile中没有指定端口,需要在运行容器时指定 -p
参数,并将容器端口映射到主机上的一个端口。否则,容器会启动失败。
-d
表示的当前的容器可以在后台运行
--name
表示给指定的容器起个名字,否则会随机生成名字
使用如下命令停止:
1 |
|
其中,<container-id>
是要停止的容器的 ID。可以使用以下命令查看正在运行的容器列表:
1 |
|
如果要停止所有容器,可以使用以下命令:
1 |
|
其中,docker ps -aq
命令用于列出所有容器的 ID。
如果项目依赖更多的第三方软件,我们需要管理的容器就更加多,每个都要单独配置运行,指定网络。使用docker-compose把项目的多个服务集合到一起,一键运行。要把项目依赖的多个服务集合到一起,我们需要编写一个docker-compose.yml
文件,描述依赖哪些服务
在dockerhub在安装wordpress的时候,所需要的服务非常多,所以需要把项目依赖的多个服务集合到一起
1 |
|
首先编写一个:docker-compose.yml
接着在docker-compose.ym==l文件所在的位置==执行:docker-compose up
就可以了
注意:执行完docker-composeup之后就已经生成容器并已经成功run起来了
]]>docker ps
列出正在运行的容器docker ps -a
列出所有的容器docker rm
删除某个容器docker exec
(-it
+docker exec
(-it mycontainer
/bin/sh)进入某一个容器; docker exit
退出某个容器docker stop container-id
停止指定 id