-
docker 安装
-
centos系统
- 如果之前安装过,执行这段代码,没有安装过可不执行(想执行也没关系)
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
执行以下命令
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
安装docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
-
启动
sudo systemctl start docker sudo systemctl enable docker # 可选
- 如果之前安装过,执行这段代码,没有安装过可不执行(想执行也没关系)
-
ubuntu系统
- 解决冲突包
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
- 设置docker存储库
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
- 安装 Docker 包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 解决冲突包
-
-
基本使用
- 由于某个智障在docekr hub 上传了一些东西,导致国内目前不能用,所以这里docker pull 应该不能运行
-
基本命令
- 拉取和查看镜像
# 拉取 docker pull image_name # 查看 docker image ls
- 查看运行容器
docker ps -a # 或者目前我喜欢使用的命令 docker container ls
- 创建运行容器
docker run -it -d --name 起个名字 -p 8080:8080 image_name # 基本参数 # -d: 在后台运行容器。 # --name <name>: 为容器指定一个名称。 # -it: 以交互模式运行容器,-i保持标准输入打开,-t分配一个伪TTY。 # --rm: 在容器退出后自动删除容器。 # --restart <policy>: 指定容器的重启策略,例如 no、on-failure、always 或 unless-stopped。 # -p <host_port>:<container_port>: 将容器的端口映射到宿主机的端口。 # -P: 自动将容器的端口随机映射到宿主机的高端口。 # --network <network>: 指定容器加入的网络。 # -v <host_dir>:<container_dir>: 将宿主机目录挂载到容器内的指定路径上。 # --mount type=bind,source=<host_dir>,target=<container_dir>: 更灵活的挂载方式,可以设置更多的参数(如只读挂载)。 # --tmpfs <container_dir>: 在容器内创建一个 tmpfs 文件系统,所有数据都存储在内存中。 # -m <memory>: 限制容器可用的最大内存量。 # --cpus=<value>: 限制容器使用的CPU数量。 # --memory-swap <value>: 设置内存和交换区的最大使用量。 # --cpu-shares <value>: 设置CPU共享权重,值越高优先级越高。 # -e <key>=<value>: 设置环境变量。 # --env-file <file>: 从文件中加载环境变量。 # --hostname <hostname>: 设置容器的主机名。 # --privileged: 赋予容器更多的权限,使其能够执行一些特权操作。 # --cap-add 和 --cap-drop: 添加或移除容器的Linux能力。 # --link <container_name>:<alias>: 连接两个容器,允许它们之间直接通信。
- 进入容器
docker exec -it 容器id /bin/bash
- 容器日志打印
docker logs -f 容器id
- 镜像导入导出
# 导出镜像 docker save -o <output_file>.tar image_name # 导入镜像 docker load -i <input_file>.tar
-
镜像打包
docker buildx build --platform linux/amd64,linux/arm64 -t myusername/myimage:latest .
- 拉取和查看镜像
-
docker镜像拉取问题
-
不知道能不能写,大概说一下,可以使用cloudfare搭建一个代理,需要一个自己的域名
-
最简单的方法:找一台非大陆外服务器,安装docker后,在服务器拉取导出然后传到需要的服务器上
-
docker 基本使用和安装
于 2024-08-15 00:19:07 首次发布