Skip to content

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 ubuntu
4.2 列出镜像

查看本地所有镜像:

javascript
docker images
4.3 运行容器

创建并启动一个基于 Ubuntu 镜像的容器:

javascript
docker run -it ubuntu
4.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 /workspace

Docker容器的IP地址

获取正在运行的 Docker 容器的 IP 地址是与容器化应用进行网络通信和调试时的常见需求。有多种方法可以实现这一目标,您可以根据具体场景选择最合适的方式。

使用 docker network inspect 命令

如果您知道容器连接到了哪个网络,您也可以通过检查该网络的信息来找到容器的 IP 地址。

步骤:

  1. 列出所有 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 地址最直接和推荐的方法。