docker run -d -p 4000:3306 -e MYSQL_ROOT_PASSWORD=1234 --name django_db -v /Users/happyeon/Desktop/workspace/my_sql/data:/var/lib/mysql mysql:8.0.32 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower_case_table_names=2
이 코드는 도커(Docker)를 사용하여 MySQL 데이터베이스를 실행하는 명령어입니다.
여기서 -d는 백그라운드(background)에서 실행하도록 지시하는 옵션입니다.
-p 4000:3306은 컨테이너의 3306번 포트를 호스트의 4000번 포트와 연결하는 옵션입니다. 이것은 호스트의 4000번 포트로 MySQL 서버에 접근할 수 있게 해줍니다.
-e MYSQL_ROOT_PASSWORD=1234는 MySQL의 root 사용자 비밀번호를 "1234"로 설정하는 옵션입니다.
--name django_db는 컨테이너의 이름을 "django_db"로 지정하는 옵션입니다.
-v /Users/happyeon/Desktop/workspace/my_sql/data:/var/lib/mysql
는 호스트의 /Users/happyeon/Desktop/workspace/my_sql/data
경로를 컨테이너의 /var/lib/mysql
경로에 마운트하는 옵션입니다. 이것은 MySQL 데이터가 호스트의 디렉토리에 저장되어 영속적으로 유지되도록 합니다.
마지막으로 mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci는 컨테이너에서 실행될 명령어입니다. 이것은 MySQL 서버가 UTF8MB4 문자 집합과 utf8mb4_unicode_ci 콜레이션(collation)을 사용하도록 설정합니다.
docker pull mysql
--> mysql 이미지 설치
docker run -d --rm -p 10000:8888 -v /Users/happyeon/Desktop/workspace/docker_jupyter:/home/jovyan/work --link encore_mysql:mysql --name encore_sci5 jupyter/datascience-notebook
이 명령어는 도커(Docker)를 사용하여 Jupyter Notebook을 실행하는 명령어입니다.
-d는 백그라운드(background)에서 실행하도록 지시하는 옵션입니다.
--rm은 컨테이너가 종료될 때 해당 컨테이너를 자동으로 삭제하도록 지시하는 옵션입니다.
-p 10000:8888은 호스트의 10000번 포트와 컨테이너의 8888번 포트를 연결하는 옵션입니다. 이것은 호스트의 10000번 포트를 통해 Jupyter Notebook에 접근할 수 있게 해줍니다.
-v /Users/happyeon/Desktop/workspace/docker_jupyter:/home/jovyan/work는 호스트의 /Users/happyeon/Desktop/workspace/docker_jupyter 경로를 컨테이너의 /home/jovyan/work 경로에 마운트하는 옵션입니다. 이것은 호스트의 디렉토리에 저장된 Jupyter Notebook 파일을 컨테이너에서 사용할 수 있게 합니다.
--link encore_mysql:mysql는 다른 컨테이너인 encore_mysql의 MySQL 서버에 연결하는 옵션입니다.
--name encore_sci5은 컨테이너의 이름을 "encore_sci5"로 지정하는 옵션입니다.
마지막으로 jupyter/datascience-notebook은 컨테이너에서 실행될 이미지 이름입니다. 이것은 Jupyter Notebook을 실행할 수 있는 이미지입니다.
위 그림과 같이 토큰 값을 복사하여 설정한 로컬 호스트로 접속한다.
나 같은 경우는 10000번 포트를 로컬 포트로 설정하였기에
localhost:10000으로 접속하여 위 토큰을 입력한다.
Jupyter notebook은 서버이기 때문에 항상 토큰값을 넘겨줘야 한다는 사실을 인지!!
con = pymysql.connect(host='mysql', user='root', password='1234', db='classicmodels', charset='utf8')
이 코드는 Python에서 pymysql 모듈을 사용하여 MySQL 데이터베이스에 연결하는 코드입니다.
pymysql.connect() 함수를 사용하여 MySQL 데이터베이스에 연결합니다. 여기서 host는 MySQL 서버의 호스트 이름을 지정하고, user는 데이터베이스에 접속하는 사용자 이름을 지정합니다. password는 해당 사용자의 비밀번호를 지정하고, db는 접속할 데이터베이스의 이름을 지정합니다.
charset은 MySQL 서버의 캐릭터셋(character set)을 지정합니다. 이 예제에서는 'utf8'을 사용하며, 이는 Unicode 문자를 지원합니다.
여기서 host는 'mysql'이라는 호스트 이름으로 지정되어 있습니다. 이는 컨테이너 내에서 실행 중인 MySQL 서버의 이름을 의미합니다. 따라서 해당 코드는 Docker 컨테이너 내에서 실행 중인 MySQL 서버에 연결
docker run -d -p 80:8000 -v /Users/happyeon/Desktop/playdata/Django/pybo:/usr/src/app --link django_db:mysql --name pybo encore_django:0.2
마찬가지로 pybo라는 이름을 가진 장고 컨테이너를 생성하는 명령어다.
Ctrl + P,Q
docker attach test
Ctrl + D
docker ps
docker rm [컨테이너id or 이름]