易笔记 - Docker
type: channel
link: https://blog.easesoft.org/tag/Docker/
items: 使用 Docker-Compose 管理 Docker 容器
items: Docker部署CloudDrive网盘挂载工具
items: 使用Docker安装（更新）Alist
items: Docker镜像的使用
items: Docker基本操作
items: Debian 12安装Docker以及Docker Compose
items: 基于ubuntu安装docker

使用 Docker-Compose 管理 Docker 容器
type: item
date: 2024-09-10T23:18:39+00:00
description: 拉取容器docker-compose pull运行容器docker-compose up -d关闭容器docker-compose stop移除容器docker-compose down重启容器（当容器卡死时使用）docker-compose restart更新容器先停止并移除旧容器，再拉取并运行新容器docker-compose stop docker-compose down docker-compose pull docker-compose up -d

Docker部署CloudDrive网盘挂载工具
type: item
date: 2024-07-22T01:08:00+00:00
description: 1.拉取命令docker pull cloudnas/clouddrive22.启动容器docker run -d \ --privileged \ --name clouddrive \ --env CLOUDDRIVE_HOME=/Config \ --device /dev/fuse:/dev/fuse \ --restart unless-stopped \ -v <path to accept cloud mounts>:/CloudNAS:shared \ -v <path to app data>:/Config \ -v <other local shared path>:/media:shared \ -p 19798:19798 \ cloudnas/clouddrive2-unstable3.访问CloudDrivehttp://<ip>:19798/

使用Docker安装（更新）Alist
type: item
date: 2024-05-02T17:00:00+00:00
description: 1.安装docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest/etc/alist为本地卷目录2.更新docker ps -a #查看容器docker stop ID #停止Alist运行,不然无法删除docker rm ID #删除Alist容器docker pull xhofe/alist:latest输入1中安装命令3.重置密码初始密码指定在第一次启动时的日志中。如果您忘记了管理员的用户名或密码，您可以：随机生成一个密码:docker exec -it alist ./alist admin random手动设置一个密码, NEW_PASSWORD 指你需要设置的密码:docker exec -it alist ./alist admin set NEW_PASSWORDalist文档

Docker镜像的使用
type: item
date: 2024-02-06T09:15:56+00:00
description: 1.镜像的拉取默认从Docker Hub拉取，如果不指定版本，会拉取最新版~ docker pull nginx ~ docker pull nginx:1.20.0 ~ docker pull quay.io/bitnami/nginx2.镜像的查看~ docker image ls3.镜像的删除~ docker image rm nginx ~ docker image rm 11d ~ docker rmi nginx4.镜像的导入和导出~ docker image save nginx:1.20.0 -o nginx.image ~ docker image load -i .\nginx.image5.镜像列表~ docker images6.查找镜像~ docker search nginx7.构建镜像创建Dockerfile文件FROM centos MAINTAINER Jeffrey "xxx@xxx.com" RUN /bin/echo 'root:gogogogo' |chpasswd RUN useradd jeffrey RUN /bin/echo 'jeffrey:gogogogo' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D通过docker build命令构建镜像~ % docker build -t jeffrey/centos . [+] Building 23.2s (9/9) FINISHED docker:desktop-linux => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 295B 0.0s => [internal] load metadata for docker.io/library/centos:latest 4.0s => [1/5] FROM docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 18.1s => => resolve docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 0.0s => => sha256:e6a0117ec169eda93dc5ca978c6ac87580e36765a66097a6bfb6639a3bd4038a 2.16kB / 2.16kB 0.0s => => sha256:52f9ef134af7dd14738733e567402af86136287d9468978d044780a6435a1193 83.94MB / 83.94MB 15.5s => => sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 762B / 762B 0.0s => => sha256:65a4aad1156d8a0679537cb78519a17eb7142e05a968b26a5361153006224fdc 529B / 529B 0.0s => => extracting sha256:52f9ef134af7dd14738733e567402af86136287d9468978d044780a6435a1193 2.5s => [2/5] RUN /BIN/ECHO 'root:gogogogo' |chpasswd 0.2s => [3/5] RUN USERADD jeffrey 0.3s => [4/5] RUN /BIN/ECHO 'jeffrey:gogogogo' |chpasswd 0.2s => [5/5] RUN /BIN/ECHO -e "LANG="en_US.UTF-8"" >/etc/default/local 0.3s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:95bc3…

Docker基本操作
type: item
date: 2024-02-06T05:59:12+00:00
description: 操作命令(全)命令(简)容器的创建docker container run docker run 容器的列出(up)docker container lsdocker ps容器的列出(up和exit)docker container ls -adocker ps -a容器的停止docker container stop docker stop 容器的删除docker container rm docker rm 1.批量停止$ docker container ps $ docker container stop eba $ docker container stop $(docker container ps -aq)stop后面跟Container ID2.批量删除$ docker container rm $(docker container ps -aq)3.系统清理快速对系统进行清理，删除停止的容器，不用的image等$ docker system prune -a -f4.容器运行模式attach模式docker container run -p 80:80 nginx该模式创建容器在前台执行，输入输出结果会反映到本地端，本地端的输入输出也会反映到容器，ctrl + c 会让容器停止执行detach模式docker container run -d -p 80:80 nginx该模式创建容器在后台执行5.连接shell创建一个容器并进入交互式模式~ docker container run -it busybox sh在一个已经运行的容器里执行一个额外的commanddocker container exec -it 33d sh6.run运行过程$ docker container run -d --publish 80:80 --name webhost nginx在本地查找是否有nginx这个image镜像去远程的image registry查找nginx镜像（默认的registry是Docker Hub)下载最新版本的nginx镜像 （nginx:latest 默认)基于nginx镜像来创建一个新的容器，并且准备运行docker engine分配给这个容器一个虚拟IP地址在宿主机上打开80端口并把容器的80端口转发到宿主机上启动容器，运行指定的命令（这里是一个shell脚本去启动nginx）

Debian 12安装Docker以及Docker Compose
type: item
date: 2024-02-02T08:29:00+00:00
description: Docker是一种容器化技术，可以在服务器上快速搭建容器并在不污染宿主机的情况下运行软件，而不再需要安装配置各种环境。安装Docker1.首先，安装一些必要的软件包：apt update apt upgrade -y apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates2.然后加入 Docker 的 GPG 公钥和 apt 源：curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list国内机器可以用清华 TUNA 的国内源：curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list3.更新系统后即可安装 Docker CEapt update apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin使用 docker version 命令检查是否安装成功： ~ # docker version4.使用特定用户运行Docker（可选）特定用户可以用 Docker rootless 模式运行 Docker，把用户也加入 docker 组，比如我们把 www-data 用户加进去：apt install docker-ce-rootless-extras sudo usermod -aG docker www-data5.修改 Docker 配置以下配置会增加一段自定义内网 IPv6 地址，开启容器的 IPv6 功能，以及限制日志文件大小。cat > /etc/docker/daemon.json << EOF { "log-driver": "json-file", "log-opts": { "max-size": "20m", "max-file": "3" }, "ipv6": true, "fixed-cidr-v6": "fd00:dead:beef:c0::/80", "experimental":true, "ip6tables":true } EOF重启 Docker 服务：systemctl restart dockerDocker Compose是一个用于在单个主机上定义和运行多个 Docker 容器的工具。它使用 YAML 文件来配置应用程序的服务，然后使用一个命令就可以创建并启动所有服务。安装 Docker Compose安装Docker时安装了 docker-compose-plugin，所以 Docker 目前已经自带 docker compose 命令，基本上可以替代 docker-compose~ # docker compose version Docker Compose version v2.24.51.使用 Docker 官方发布的 Github 直接安装最新版本：curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose使用 docker-compose version 命令检查是否安装成功：~ # docker-co…

基于ubuntu安装docker
type: item
date: 2024-01-16T06:12:00+00:00
description: 本文以Ubuntu20.05系统为例安装docker。检查卸载老版本dockerubuntu下自带了docker的库，不需要添加新的源。但是ubuntu自带的docker版本太低，需要先卸载旧的再安装新的。$ apt-get remove docker docker-engine docker.io containerd runc如果不能正常卸载，显示无权限时，需要添加管理员权限才可进行卸载。安装步骤更新软件包在终端中执行以下命令来更新Ubuntu软件包列表和已安装软件的版本:sudo apt update sudo apt upgrade安装docker依赖Docker在Ubuntu上依赖一些软件包。执行以下命令来安装这些依赖:apt-get install ca-certificates curl gnupg lsb-release添加Docker官方GPG密钥执行以下命令来添加Docker官方的GPG密钥:curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -添加Docker软件源执行以下命令来添加Docker的软件源:sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"注：该命令需要使用root权限安装docker执行以下命令来安装Docker:apt-get install docker-ce docker-ce-cli containerd.io配置用户组（可选）默认情况下，只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组，以避免每次使用Docker时都需要使用sudo。命令如下：sudo usermod -aG docker $USER注：重新登录才能使更改生效。运行docker我们可以通过启动docker来验证我们是否成功安装。命令如下：systemctl start docker安装工具apt-get -y install apt-transport-https ca-certificates curl software-properties-common重启dockerservice docker restart复制验证是否成功sudo docker run hello-world查看版本我们可以通过下面的命令来查看docker的版本sudo docker version查看镜像上面我们拉取了hello-world的镜像，现在我们可以通过命令来查看镜像，命令如下：sudo docker images