💡 42seoul 본과정
💡 아래 링크들 밑에 설명이 있습니다.
다만, 아래 링크들을 전부 읽어보시면 굉장한 도움이 되실 겁니다.
[Column] 클라우드 네이티브란?
<클라우드 네이티브에 관한 (컨테이너에 관한) 자세한 설명>
도커와 컨테이너의 이해 (1/3) - 컨테이너 사용법
<도커 이해 블로그>
Inception
<jseo inception 설명>
[Docker] 도커 컨테이너 실행하기 / 명령어, 옵션 정리
<도커 명령어 기본>
컨테이너 환경을 위한 초기화 시스템 (tini, dumb-init)
Docker와 Dumb-Init
<테스트로 nginx 돌렸는데 컨테이너가 바로 종료될때 문제인 pid1 관련 자료>
Docker(file) CMD & ENTRYPOINT & RUN 그리고 docker 컨테이너 생명주기와 프로세스 (container lifecycle & process)
<CMD, ENTRYPOINT 차이 및 pid1>
Nginx 설치 및 nginx.conf, default.conf 이해하기
<nginx 기본 설정>
[Infra] 리버스 프록시(reverse proxy) 서버 개념
<프론트프록시, 리버스 프록시>
[Docker] docker compose 사용법
<docker compose 간단한 설명>
09. 도커 컴포즈(Docker Compose)란 무엇일까?
<도커 컴포즈 문법 및 간단한 예제>
도커(Docker) 컴포즈를 활용하여 완벽한 개발 환경 구성하기
<도커 백서>
How To Install WordPress With Docker Compose | DigitalOcean
<참고자료>
docker compose와 간단한 compose 문법
<워드프레스와 nginx 코드예시>
Docker Compose로 Wordpress, MariaDB, PHP-FPM, Nginx, Redis, Certbot 설치하기 > 우분투 서버 | 우성짱의 NAS
<nginx, 워드프레스, mysql 설치 예시 매운맛>
WordPress
<워드프레스 설치 위키>
[networking] 여러 도커 작성 프로젝트 간의 통신
docker & docker-compose network
<docker network 예시>
[docker] docker-compose.yml의 명명 된 볼륨에 대한 호스트 경로를 설정하는 방법
<docker 볼륨 바인드 마운트 설정>
docker-compose로volumes 설정
<docker compose 볼륨 옵션 설명>?
Docker Alpine Linux에 WordPress Mariadb 설치하기#2
<docker wordpress, mariadb 설치>
Error setting up MySQL: Table 'mysql.plugin' doesn't exist
<mysql_install_db 명령어>
[TIL] 도커 시작하기 - 도커 설치, Nginx, OpenSSL
<ssl 설정>
[ft_server]Docker, nginx, openssl
<ssl설정 깊은버전>
튜토리얼 Nginx - SSL, TLS 1.0 및 TLS 1.1을 비활성화 [ 단계별]
<nginxs tls 설정>
wp-cli 사용하기 #1
<워드프레스 cli 유저 설정>
WP-CLI - 워드프레스를 명령창에서 관리하는 유틸리티
터미널에서 WordPress를 관리하기 위해 wp-cli를 설치하는 방법 - TechCrop.net
<wp-cli로 워드프레스 설치하는 방법>
wordpress에 redis cache 적용하기 | 다비도브 linux vps서버운영일기
<redis 설정>
How to Setup FTP to use in locally hosted wordpress
<ftp서버 설정>
💡 이전에 “Born2beRoot” 과제 가이드라인을 만들었다가, 치팅시트로 전락될 뻔하여 일부 수정하였습니다.
이 글은 기본 지식 함양 및 쓸데없는 고생을 덜기 위한 참고용 가이드라인으로만 봐주시길 바랍니다.
실제 과제를 만들기 위한 방법과 다릅니다.
도커, 도커컴포즈 학습용 가이드라인임을 알려드립니다.
더 궁금하신 점은 DM 부탁드려요 🙏
Ubuntu 18.04 iso 설치
2Gb짜리 설치
[Ubuntu 18.04.6 LTS (Bionic Beaver)](https://releases.ubuntu.com/18.04/)
iso 다운받는동안 vdi 생성 → 본투비루트와 같으나, ram을 4096으로.
iso파일 다운받는동안 network 포트포워딩 10.0.2.15에 포트 22, 80, 443 연결해두기
iso설치가 완료되면 vdi열어서 iso얹고 실행.
💡 iso를 통해 우분투 설치 중, Update Ubuntu 체크 해제!!!!!!!!!
계정설정은 간단하게 완료하기 (비번 1111이 편함)
sudo apt-get install -y git
실행.
편한 개발을 위한 tools 설치
💡 우분투 서버를 kakao로 바꾸면 좋다.
git config --global user.email "[tmdgks2222@naver.com](mailto:tmdgks2222@naver.com)"
git config --global [user.name](http://user.name/) "KOREAparksh"
zsh 환경에서 docker 설치
💡 ssh 설치했으면 적용해야 할 것 같은 XXXXX의 이름은?
(hint: vm)
도커 파일 만들어보기 with nginx를 불러오지 말고 alphain에서 설치해서 운용하기
FROM @@@
RUN @@@
RUN @@@
WORKDIR @@@
COPY . .
ENTRYPOINT @@@
CMD @@@
도커 이미지 만들고 컨테이너 띄우기
포트포워딩으로 연결한 포트 크롬으로 띄어보기. nginx 화면이 나오면 성공.
nginx 문법 배우기
exec 옵션으로 container안에 들어가서 nginx 설정들 알아보기 (nginx 설정 잘 되는가 확인하는거)
이제 도커파일 안에 copy를 이용해서 적용해보기
쉽게말해 exec 옵션으로 nginx 설정 바꿀 필요없이 docker run
만으로 nginx설정 다 바뀌게.
워드프레스가 무엇일까? 알아보기
일단 exec로 nginx 컨테이너 들어가서
php 만져보기
apk add --upgrade curl php8 php8-fpm
vi /etc/php8/php-fpm.d/www.conf 내 127.0.0.1 → 0.0.0.0
💡 0.0.0.0의 뜻은 무엇일까요?
0.0.0.0의 단점을 보완하기 위해, 도커 네트워크를 활용한다면 어떠한 ip주소를 넣어야 할까요?
# nginx server 블록 변경
location ~ \.php$ {
root /var/www/html;
# php 파일이 존재하는 디렉터리 경로
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
# fastcgi_pass : php-fpm.sock이 존재하는 경로
fastcgi_index index.php;
# 초기 php 파일명 지정
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
vi /var/www/html/index.php
nginx -s reload
php-fpm8
도커 볼륨 만들기 (컴포즈 아님)
도커 볼륨 연결
volumes:
wordpress-v:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/home/seunpark/data/wordpress'
nginx default.conf 수정
index.html은 있어도 없어도 됨.
```docker
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/wordpress/;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# You may need this to prevent return 404 recursion.
location = /404.html {
internal;
}
}
```
이제 wordpress dockerfile 따로 만들어서 연결해보기수정
FROM @@@@@@
RUN apk update
RUN apk add --upgrade curl \
php8 \
php8-fpm
RUN apk add dumb-init
WORKDIR /usr/src/app
// 도커볼륨과 연결할 폴더 만들기
RUN @@@@@
// 워드프레스 설치
RUN curl https://ko.wordpress.org/wordpress-6.0.2-ko_KR.tar.gz -o wordpress.tar.gz && \
tar -zxvf wordpress.tar.gz && \
rm -rf wordpress.tar.gz && \
cp -R ./wordpress/* /var/www/wordpress/
RUN sed -i "s/listen = 127.0.0.1:9000/listen = wordpress:9000/" /etc/php8/php-fpm.d/www.conf
ENTRYPOINT ["/usr/bin/dumb-init"]
CMD ["php-fpm8", "--nodaemonize"]
wordpress같은 경우 바인드된 도커볼륨에 복사하므로, 설치 후 재 빌드 시엔 설치하면 안됨.
따라서 스크립트로 따로 빼야 함.
연결해보기
nginx 명렁어 왜 다른가