WSL
user:ys psword:123
docker安装mysql
docker run -d -p 3307:3306 --privileged=true -v D:/workspace_dir_host/mysql/log:/var/log/mysql -v D:/workspace_dir_host/mysql/data:/var/lib/mysql -v D:/workspace_dir_host/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7四、Docker 基本命令操作
4.1 拉取镜像
使用以下命令从 Docker Hub 拉取 Ubuntu 镜像:
javascript
docker pull ubuntu4.2 列出镜像
查看本地所有镜像:
javascript
docker images4.3 运行容器
创建并启动一个基于 Ubuntu 镜像的容器:
javascript
docker run -it ubuntu4.4 打包容器
将正在运行的容器保存为新镜像:
javascript
docker commit [容器ID] [新镜像名]4.5 推送镜像
首先,你需要登录 Docker Hub(Docker Hub是docker官方的镜像仓库,但如果不使用科学上网方式有时候会难以访问):
javascript
docker login然后推送镜像到 Docker Hub:
javascript
docker push [用户名]/[镜像名]4.6 启动和停止容器
启动一个已停止的容器:
javascript
docker start [容器ID或名称]停止一个正在运行的容器:
javascript
docker stop [容器ID或名称]4.7 附加命令
- 列出正在运行的容器:
javascript
docker ps- 删除一个容器:
javascript
docker rm [容器ID或名称]- 删除一个镜像:
javascript
docker rmi [镜像ID或名称]五、一个简单的实操案例
假设我们需要部署一个简单的 Web 服务器。
5.1、创建 Dockerfile
创建一个包含以下内容的文件,命名为Dockerfile(没有文件拓展名!没有文件拓展名!没有文件拓展名!):
javascript
FROM nginx
COPY index.html /usr/share/nginx/html/其中index.html是你希望服务的网页文件。
5.2、构建镜像
在 Dockerfile 所在目录执行:
javascript
docker build -t my-nginx .5.3、运行容器
javascript
docker run -d -p 8080:80 my-nginx这将在后台启动一个容器,并将容器的 80 端口映射到宿主机的 8080 端口。
5.4、访问应用
在浏览器中访问 http://localhost:8080,你将看到部署的 Web 应用。
正确的挂载路径格式
在 Windows 11 上,挂载路径需要以 / 开头。正确的命令如下:
docker run -d \
-v /d/workspace_dir_host:/workspace \
-p 6806:6806 \
-e PUID=1001 \
-e PGID=1002 \
b3log/siyuan \
--workspace=/workspace \
--accessAuthCode=xxx验证挂载是否成功
运行容器后,可以通过以下命令验证挂载路径是否正确:
docker exec -it <container_name_or_id> ls /workspaceDocker容器的IP地址
获取正在运行的 Docker 容器的 IP 地址是与容器化应用进行网络通信和调试时的常见需求。有多种方法可以实现这一目标,您可以根据具体场景选择最合适的方式。
使用 docker network inspect 命令
如果您知道容器连接到了哪个网络,您也可以通过检查该网络的信息来找到容器的 IP 地址。
步骤:
- 列出所有 Docker 网络:
bash
docker network ls
```
2. **检查特定网络:**
```bash
docker network inspect <网络名称>
```
这会返回一个 JSON 对象,其中包含了所有连接到该网络的容器及其 IP 地址信息。
### Docker 网络基础
理解 Docker 的网络模式有助于更好地管理容器 IP。默认情况下,Docker 使用一个名为 `bridge` 的桥接网络。 在这个网络中,Docker 会从一个子网(通常是 `172.17.0.0/16`)中为每个容器分配一个内部 IP 地址。 这些容器可以在同一个宿主机上通过内部 IP 地址相互通信。
总而言之,`docker inspect` 结合格式化输出是从宿主机获取容器 IP 地址最直接和推荐的方法。