docker compose
·
compose : 批量管理容器的操作,需要一个 compose.yaml 文件
示例:mysql + wordpress 搭建一个建议的个人博客系统
传统做法:
1. 创建自定义网络
docker network create blog2. 启动 mysql 并配置环境变量等
docker run -d -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_DATABASE=wordpress \ -v mysql-data:/var/lib/mysql \ -v /app/myconf:/etc/mysql/conf.d \ --restart always --name mysql \ --network blog \ mysql:8.03. 启动 wordpress 并配置环境变量等,注意和 mysql 的容器加入同一网络
docker run -d -p 8080:80 \ -e WORDPRESS_DB_HOST=mysql \ -e WORDPRESS_DB_USER=root \ -e WORDPRESS_DB_PASSWORD=123456 \ -e WORDPRESS_DB_NAME=wordpress \ -v wordpress:/var/www/html \ --restart always --name wordpress-app \ --network blog \ wordpress这一步完成后就可以通过 ip a 来查看自己的 ip 并在外界的浏览器输入 ip/8080 来访问wordpress了。但是如果其他人也想实现这个操作,不仅要记住这么多环境变量, 还要重复输入这么多操作,太麻烦了,这个时候,compose就可以起作用了。
compose做法:
1. 在 compose.yaml 文件中配置好相关文件
2. 进入 vim 编写 compose.yaml 文件内容,语言格式可以去详细搜一下
name: myblog services: mysql: container_name: mysql image: mysql:8.0 ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=123456 - MYSQL_DATABASE=wordpress volumes: - mysql-data:/var/lib/mysql - /app/myconf:/etc/mysql/conf.d restart: always networks: - blog wordpress: container_name: wordpress-app image: wordpress ports: - "8080:80" environment: - WORDPRESS_DB_USER=root - WORDPRESS_DB_PASSWORD=123456 - WORDPRESS_DB_NAME=wordpress volumes: - wordpress:/var/www/html restart: always networks: - blog depends_on: - mysql volumes: mysql-data: wordpress: networks: blog:
3. 使用命令执行yaml文件内容
docker compose -f compose.yaml up -d
可以发现容器和网络,卷等全部有了
// 下线命令,会移除容器,网络;但是不会移除卷 docker compose -f compose.yaml down // 可以添加参数来指定是否删除卷,镜像之类。下面就是删除所有镜像和卷 docker compose -f compose.yaml down --rmi all -v
补充:
-d:后台运行容器
-p:端口映射(宿主机端口:容器端口)
-v:挂载目录或文件(宿主机路径:容器路径)
-e:设置环境变量
-it:交互式运行容器(分配终端并保持输入)
--name:指定容器名称
--rm:容器退出时自动删除
-h:设置容器主机名
--network:指定容器网络
--restart:设置容器重启策略
更多推荐





所有评论(0)