itwiki:docker-practice

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
itwiki:docker-practice [2021/09/26 02:58] – [docker 安装] ovwx@live.ioitwiki:docker-practice [2021/10/22 03:05] (当前版本) – [docker 安装] ovwx@live.io
行 3: 行 3:
 ===== docker 安装 ===== ===== docker 安装 =====
 免费版本为docker-ce 即社区版本 免费版本为docker-ce 即社区版本
-CentOS: https://docs.docker.com/engine/install/centos/ 
  
 +  * CentOS: https://docs.docker.com/engine/install/centos/
 +
 +设置docker数据目录:
 +<code>
 +vi /etc/docker/daemon.json
 +{
 +  "data-root": "/data/docker"
 +}
 +systemctl restart docker
 +</code>
  
 ===== Docker 容器与镜像快速一览 ===== ===== Docker 容器与镜像快速一览 =====
行 10: 行 19:
   * 使用 docker pull 从docker hub 拉取的软件包被称之为镜像   * 使用 docker pull 从docker hub 拉取的软件包被称之为镜像
   * 每次使用 docker run IMAGENAME 都会自动以镜像为蓝本生成一个运行空间,这个运行空间被称为容器,每个容器相互隔离   * 每次使用 docker run IMAGENAME 都会自动以镜像为蓝本生成一个运行空间,这个运行空间被称为容器,每个容器相互隔离
-  * 查看所有镜像使用 docker image ls -a 命令,而查看所有容器使用 docker ps -a 命令+  * 查看所有镜像使用 docker image ls -a (( 老版本使用docker images -a )) 命令,而查看所有容器使用 docker ps -a 命令
   * 使用exit命令或者按下ctrl-c停止容器后,容器不会消失,需要使用docker rm删除容器,使用docker rm 删除时,仅须提供镜像ID前几位(可以区分不同容器即可)   * 使用exit命令或者按下ctrl-c停止容器后,容器不会消失,需要使用docker rm删除容器,使用docker rm 删除时,仅须提供镜像ID前几位(可以区分不同容器即可)
   * 对容器的更改会保留在当前容器中,但不会影响镜像   * 对容器的更改会保留在当前容器中,但不会影响镜像
   * 使用 docker commit 会提交容器修改至镜像,相关命令 docker commit container-id image-name:tag   * 使用 docker commit 会提交容器修改至镜像,相关命令 docker commit container-id image-name:tag
   * 使用 docker save image-name:tag -o image.tar 将镜像保存至文件   * 使用 docker save image-name:tag -o image.tar 将镜像保存至文件
-  * 使用 docker load +  * 使用 docker load 将镜像文件导入到docker daemon
   * docker inspect image-id 显示容器详细信息,如虚拟IP,开放端口等   * docker inspect image-id 显示容器详细信息,如虚拟IP,开放端口等
  
行 67: 行 76:
   -e TZ=Asia/Shanghai \   -e TZ=Asia/Shanghai \
   --name rss freshrss/freshrss   --name rss freshrss/freshrss
 +</code>
 +
 +==== 启动一个 ElasticSearch 节点 ====
 +** 拉取镜像 **
 +<code>
 +docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.0
 +</code>
 +
 +** 启动容器 **
 +<code>
 +docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.15.0
 +</code>
 +
 +** 测试 **
 +<code>
 +curl -X GET "localhost:9200/_cat/nodes?v=true&pretty"
 </code> </code>
  
行 99: 行 124:
 需要较高版本的docker 需要较高版本的docker
  
 +==== docker 资源配额 ====
  
 +在运行前限制
 +<code>
 +docker run -m 1024m --memory-swap=1024m \
 +  -c 0.2 --cpuset-cpus='0,1' \
 +  imagename:tag cmd
 +</code>
 +
 +其中:
 +  * M 限制内存使用为1024M,将内存及交换空间限制为1024M,也就是不使用虚拟内存
 +  * C 限制容器使用CPU权重,最低可使用20%CPU
 +  * CPUSET-CPUS 限制可以运行此容器的CPU编号
 ==== 共享容器 ==== ==== 共享容器 ====
 以下命令创建了一个共享容器,挂载了多个卷或者本地目录 以下命令创建了一个共享容器,挂载了多个卷或者本地目录
行 126: 行 163:
 ENV LC_ALL C.UTF-8 ENV LC_ALL C.UTF-8
 ENTRYPOINT ["./docker-entrypoint.sh"] ENTRYPOINT ["./docker-entrypoint.sh"]
 +</code>
 +
 +相关说明:
 +  * FROM 基础镜像 -- 从基础镜像构建镜像
 +  * RUN shell命令列表 -- 运行构建命令,每个RUN命令构建一层镜像,因此一个RUN命令运行多个命令避免构建多层镜像,多个命令用两个%% && %% 符号连接
 +  * ENV var-name value -- 传送环境变量
 +  * ENTRYPOINT ['cmd','arg','arg'] --docker启动时运行的命令
 +  * CMD ['arg','arg'] 或 CMD ['cmd','arg','arg'] 或 CMD "cmd arg arg" --如果指定了EntryPoint,后面可以再传参数,如果没有指定EntryPoint,则运行CMD中指定的命令
 +  * COPY ./dir/files* image-dir --将文件上下文目录中的文件复制到镜像,每个COPY构建一层镜像
 +
 +docker 镜像构建
 +<code>
 +cd docker-dir
 +docker build -t image-name:tag . 
 +注:"."代表构建docker上下文目录,dockerfile及需要添加进镜像的文件可以都放在里面
 </code> </code>
  
  • itwiki/docker-practice.1632617882.txt.gz
  • 最后更改: 2021/09/26 02:58
  • ovwx@live.io