Docker学习

Docker 学习

这个是基于WSL中使用命令行下载的Docker,作用是管理WSL下特定版本的Ubuntu系统

下载docker

# 1. 更新系统包索引
sudo apt update

# 2. 安装必要的依赖
sudo apt install -y ca-certificates curl

# 3. 创建密钥目录并添加 Docker 官方 GPG 密钥
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

# 4. 添加 Docker 官方仓库
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

# 5. 再次更新包索引(这次会从 Docker 仓库获取信息)
sudo apt update

# 6. 安装 Docker 及相关组件
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 7. 启动 Docker 服务
sudo service docker start

# 8. 验证安装
sudo docker run hello-world

Docker中有三种身份
宿主机身份(你Windows/WSL里的用户)默认身份(root)容器内的普通用户(可以自己创建)

把你加入 docker 组,这样就不需要使用sudo就能执行docker指令了

sudo usermod -aG docker $USER    # 加入docker组就可以使用docker命令

使组权限生效

# 退出当前 WSL 会话
exit
wsl --terminate Ubuntu-24.04-learn
wsl -d Ubuntu-24.04-learn

使用docker

docker images    # 查看docker有哪些镜像
docker ps -a    # 查看docker的容器(包括已停止的)
docker ps        #查看docker正在运行的容器
docker rmi <镜像名字或者id>    # 把服务器上的指定的镜像删除
docker rm <容器的名字或者id>    # 把服务器上的镜像创建的容器删除
docker rm -f <容器的名字或者id>    # 强制删除容器
docker pull nginx      # 从 Docker Hub 下载 Nginx 镜像到本地

docker run nginx          # 使用镜像创建一个容器,包含了docker pull 命令,如果发现本地不存在则会先拉取
docker run -d nginx          # 表示容器在后台执行,不阻塞当前窗口,会打印出容器的id
docker run -p 80:80 nginx    # 端口映射
docker run -d --name <自定义名字>    # docker 容器自定义名字
docker run -d -p 80:80 -v /website/html:/usr/share/nginx/html nginx    # -v 代表吧宿主机的目录和容器内的目录做绑定
docker volume create nginx_html
docker run -d -p 80:80 -v nginx_html:/usr/share/nginx/html nginx

docker volume list     # 列出所有创建过的卷
docker volume rm nginx_html        # 删除一个卷
docker volume prune -a             # 删除所有没有任何容器使用的卷

添加新评论