티스토리 뷰

Docker 와 Container

Docker compose 응용

looeon 2024. 3. 6. 16:10

 

web_apps.tar
0.01MB
todo.tar
0.01MB

 

▶ todo 테이블

[vagrant@docker1 mysql]$ cat todo.sql
USE todo;
CREATE TABLE tasks (
        id int not null auto_increment,
        task varchar(255),
        primary  key(id)
);

 

● docker-entrypoint-initdb.d 에 들어가면 db 가 만들어진다

[vagrant@docker1 mysql]$ cat Dockerfile
FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD=mypass MYSQL_DATABASE=todo
ADD ./todo.sql /docker-entrypoint-initdb.d/
EXPOSE 3306

 

 

◎ docker-entrypoint.sh 라는 셀 스크립트가 있다

>> 셀 스크립트에서 docker-entrypoint-initdb 검색

[vagrant@docker1 mysql]$ docker exec -it mydb /bin/bash
bash-4.2# find / -name docker-entrypoint.sh
/usr/local/bin/docker-entrypoint.sh

 

# 참조되어 todo.sql 이 들어가면서 테이블이 생성되는건가...;;

bash-4.2# grep -A 10 "docker-entrypoint" /usr/local/bin/docker-entrypoint.sh
                        ls /docker-entrypoint-initdb.d/ > /dev/null

                        docker_init_database_dir "$@"

                        mysql_note "Starting temporary server"
                        docker_temp_server_start "$@"
                        mysql_note "Temporary server started."

                        mysql_socket_fix
                        docker_setup_db
                        docker_process_init_files /docker-entrypoint-initdb.d/*

                        mysql_expire_root_user

                        mysql_note "Stopping temporary server"
                        docker_temp_server_stop
                        mysql_note "Temporary server stopped"

                        echo
                        mysql_note "MySQL init process done. Ready for start up."
                        echo

 

>> 컨테이너가 올라가면 docker-entrypoint.sh 라는 셀 스크립트가 실행되어있다

[vagrant@docker1 web_apps]$ docker ps --no-trunc
CONTAINER ID                                                       IMAGE          COMMAND                                          CREATED             STATUS             PORTS                                   NAMES
96b898f6b5fc604bac161cd18a15eb813870a9db62ac879953beb5d0a23d6e56   web_apps-php   "httpd -D FOREGROUND"                            8 minutes ago       Up 8 minutes       0.0.0.0:8000->80/tcp, :::8000->80/tcp   myphp
5687a970fc7247e7f38e4b336fbb189350130365baaaeb00897091603ba5279f   web_apps-db    "docker-entrypoint.sh mysqld"                    8 minutes ago       Up 8 minutes       3306/tcp, 33060/tcp                     mydb
bfa511e22584c76285254e7946d0ead677b32bb37fc816394554f8bb675e3ebe   mysql:5.7      "docker-entrypoint.sh mysqld"                    About an hour ago   Up About an hour   3306/tcp, 33060/tcp                     dreamy_nash
276a4bad15e558a92f32e74527da8e6c557a5c08660c3df3813a5a1e5eab30e3   nginx          "/docker-entrypoint.sh nginx -g 'daemon off;'"   2 hours ago         Up 2 hours         80/tcp                                  eager_spence

 

 

▶ 수정 1

[vagrant@docker1 work]$ cat web_apps/docker-compose.yml
version: '3.9'

networks:
  webapps:

services:
  php:
    build: ./docker/php
    volumes:
      - ./html:/var/www/html
      - ./logs:/etc/httpd/logs
    ports:
      - '8000:80'
    networks:
      webapps:
    depends_on:
      - db
    container_name: myphp
  db:
    build: ./docker/mysql
    networks:
      webapps:
    container_name: mydb

 

▶ 수정 2

[vagrant@docker1 web_apps]$ cp ../todo/index.php ./html/
[vagrant@docker1 web_apps]$ cp ../todo/style.css ./html/

 

 

▶ 수정 3

 

 

▩ db 와 연동이 안되어있다

>> 글자가 들어가지 않는다

 

 

 

● index.php 파일을 바꿔준다

 

 

>> 제대로 작동한다

 

'Docker 와 Container' 카테고리의 다른 글

Docker Swarm  (0) 2024.03.07
오케스트레이션 [orchestration]  (0) 2024.03.06
Docker - compose  (0) 2024.03.06
Docker registry 배포  (0) 2024.03.06
Docker image upload  (0) 2024.03.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함