programing

도커: WordPress 컨테이너에 80 이외의 포트를 매핑할 수 없습니다.

telebox 2023. 3. 18. 08:28
반응형

도커: WordPress 컨테이너에 80 이외의 포트를 매핑할 수 없습니다.

컴퓨터에 랜덤 포트를 매핑하고 싶다. localhost:7006내 WordPress 도커 컨테이너의port 80WordPress 포트를 변경할 때80:80로.7006:80그뿐만 아니라localhost(port 80)또한 응답하지 마십시오.localhost:7006.

docker-compose.yml파일은 다음과 같습니다.

        version: '3'
    services:
      wordpress:
        depends_on:
          - db
        image: wordpress:4.7.1
        restart: always
        volumes:
          - ./wp-content:/var/www/html/wp-content 
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_PASSWORD: p4ssw0rd!
        ports:
          - 80:80 # Expose http and https
          - 8443:443
        networks:
          - wp_nwk
      db:
        image: mysql:5.7
        restart: always
        volumes:
           - db_data:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: p4ssw0rd!
        networks:
          - wp_nwk
      phpmyadmin:
        depends_on:
          - db
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
          - 7005:80
        environment:
          PMA_HOST: db
          MYSQL_ROOT_PASSWORD: p4ssw0rd!
        networks:
          - wp_nwk
    networks:
      wp_nwk:
    volumes:
      db_data:

조사 결과 WordPress 컨테이너는 URL을 저장해야 하므로 포트를 한 번 설정한다는 것을 알게 되었습니다.localhost:7006db 데이터를 유지하고 있기 때문에 db에 저장됩니다.

제가 실행한 것은docker-compose up디폴트 포트로 1회80:80의 원인이 된 설정localhost:80또는localhostdb에 저장합니다.그래서 다시 포트를 바꿔서docker-compose up링크된 mysql db 컨테이너에 저장되어 있는 URL과 WordPress 컨테이너를 혼동했습니다.

나는 달렸다docker-compose down --volumes(이 때문에 데이터가 계속 파괴됩니다).그리고 docker-compse.yml의 WordPress 컨테이너 포트를 변경합니다.다음 명령을 다시 실행하면 WordPress 컨테이너가 포트 7006에 라이브로 생성됩니다(localhost:7006).docker-compose up

wordpress:
depends_on:
  - db
image: wordpress:4.7.1
restart: always
volumes:
  - ./wp-content:/var/www/html/wp-content 
environment:
  WORDPRESS_DB_HOST: db:3306
  WORDPRESS_DB_PASSWORD: p4ssw0rd!
ports:
  - 7006:80 # Expose http and https
  - 8443:443
networks:
  - wp_nwk

중요: 도커를 가지고 놀고 있기 때문에 볼륨 데이터를 저장하고 싶지 않습니다.데이터를 보관하고 싶은 사용자는docker-compose down --volumes

현재 원하는 포트로 실행되고 있습니다.

포토를 변경하는 경우는, 다음의 순서를 실행할 필요가 있습니다.WordPress 포트를 성공적으로 변경했습니다.

  1. 기본 docker-compose.yml을 사용하여 WordPress 실행
version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}
  1. login word 프레스를 사용하여 원하는 대로 사이트 URL 및 홈 설정을 변경합니다.
  2. 워드프레스 컨테이너에서 follow 명령어 사용
docker exec -it *wordpres_container_id* bash
  1. 다음 행을 추가하다wp_config.php
define( 'WP_HOME', 'http://example.com' );
define( 'WP_SITEURL', 'http://example.com' );
  1. 바꾸다docker-compose.yml포트 수:
  2. 재시작 컨테이너 use follow 명령어
docker-compose down
docker-compose up -d

wordpress admin에서 [WordPress Address (URL) and Site Address (URL)]를 변경한 후 볼륨 내의 데이터를 파괴하지 않고 docker-compose에서 포트를 변경해야 합니다.

언급URL : https://stackoverflow.com/questions/48825586/docker-i-cant-map-ports-other-than-80-to-my-wordpress-container

반응형