ec2 ๋ฐ๊ธ
ufw ์ค์ ๋ฐ port ๊ตฌ์ฑ๋
swap ๋ฉ๋ชจ๋ฆฌ ์ค์
docker ์ค์น (+ Ubuntu ๊ธฐ๋ณธ ํ๊ฒฝ ์ธํ
)
docker-compose & jenkins ์ค์น
jenkins gitlab ์ฐ๋(project-build) ๋ฐ ํ๋ฌ๊ทธ์ธ ์ค์น
dockerHub ์ค์น ๋ฐ ์ฐ๋(docker-build)
dockerScript ์์ฑ(pipeline)
Nginx
S3 ์ค์น ๋ฐ ์ค์
RDS ์ค์น ๋ฐ ์ค์
docker ์ค์น
Docker ????? - ๋ฆฌ๋
์ค ๊ธฐ๋ฐ์ ์ปจํ
์ด๋ํ ๊ธฐ์ ๋ก, ์ ํ๋ฆฌ์ผ์ด์
์ ํจ์จ์ ์ผ๋ก ๋ฐฐํฌํ๊ณ ์คํ ํ ์ ์๋๋ก ํด์ฃผ๋ ์คํ์์ค ํ๋ก์ ํธ - ๋์ปค ์ปจํ
์ด๋๋ ๊ฐ์ ๋จธ์ (VM ware, VirtualBox) ๋ณด๋ค ๊ฐ๋ฒผ์ ๋ฆฌ์์ค ์ฌ์ฉ์ด ์ ๊ณ , ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ๋ฅผ ํตํด ์ฑ๋ฅ ์์ค์ด ๊ฑฐ์ ์๋ค - ๊ฐ ์ปจํ
์ด๋๋ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์คํ ํ์ผ๋ง ํฌํจํ๋ฏ๋ก ์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ ์๊ณ , ๋ง๋ค์ด ๋ฐฐํฌํ๋ ์๊ฐ์ด ๊ฐ์ ๋จธ์ ์ ๋นํด ๋น ๋ฅด๊ณ , ๋์ปค ์์ง์ ํตํด ์ด๋ฏธ์ง์ ์ปจํ
์ด๋๋ฅผ ๊ด๋ฆฌ ํ๋ค - ๋์ปค์์ ์ฌ์ฉํ๋ ์ด๋ฏธ์ง์ ์ด๋ฆ ๊ตฌ์ฑ [ ์ ์ฅ์ ์ด๋ฆ ] / [ ์ด๋ฏธ์ง ์ด๋ฆ ] : [ ํ๊ทธ ] ์ ์ฅ์ ์ด๋ฆ : ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋ ์ฅ์, ์ ์ฅ์ ์ด๋ฆ์ด ๋ช
์๋์ง ์์ ์ด๋ฏธ์ง๋ ๋์ปค ํ๋ธ์ ๊ณต์ ์ด๋ฏธ์ง๋ฅผ ๋ปํจ ์ด๋ฏธ์ง ์ด๋ฆ : ํด๋น ์ด๋ฏธ์ง๊ฐ ์ด๋ค ์ญํ ์ ํ๋์ง ๋ํ๋ด๋ฉฐ ํ์๋ก ์ค์ Ex) ubuntu:latest : ์ฐ๋ถํฌ ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ด๋ฏธ์ง ํ๊ทธ : ์ด๋ฏธ์ง์ ๋ฒ์ ์ ๋ํ๋, ํ๊ทธ๋ฅผ ์๋ตํ๋ฉด ๋์ปค ์์ง์ latest๋ก ์ธ์ํจ
Ubuntu ๊ธฐ๋ณธ ํ๊ฒฝ ์ธํ
sudo apt update
sudo apt upgrade
sudo apt update : ์์คํ
์ด ์๋ก์ด ์ํํธ์จ์ด๋ฅผ ์ค์นํ๊ฑฐ๋ ์
๊ทธ๋ ์ด๋ ํ ๋ ๊ฐ์ฅ ์ต์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํจ
sudo apt upgrade : ์์คํ
์ ์ค์น๋ ๋ชจ๋ ํจํค์ง๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ ํจ
sudo apt install apt-transport-https ca-certificates
apt-transport-https : HTTPS ํ๋กํ ์ฝ์ ํตํด ์์ ํ๊ฒ ์ํํธ์จ์ด ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ค์นํ ์ ์๋๋ก ๋์์ฃผ๋ ํจํค์ง : HTTPS๋ ๋ฐ์ดํฐ ์ ์ก ์ค์ ์ํธํ๋ฅผ ์ ๊ณตํ์ฌ ๋ณด์์ฑ์ ๊ฐํํจ
ca-certificates : ์ธ์ฆ์(authority certificates)๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ : HTTPS ํต์ ์์ ์๋ฒ์ ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ์๋ฅผ ํ์ธํ๊ธฐ ์ํด ํ์ํจ
sudo apt install curl gnupg-agent software-properties-common
curl : ๋ฐ์ดํฐ ์ ์ก์ ์ํ ๋ช
๋ น์ค ๋๊ตฌ : ๋ค์ํ ํ๋กํ ์ฝ์ ์ง์ํ๋ฉฐ ์ฃผ๋ก ์น์์ ํ์ผ์ ๋ค์ด๋ก๋ํ๊ฑฐ๋ api ์์ฒญ์ ๋ณด๋ด๋ ๋ฐ ์ฌ์ฉ
gnupg-agent : GNU Privacy Guard(GnuPG)์ ์์ด์ ํธ ํ๋ก๊ทธ๋จ : ์ํธํ ๋ฐ ์๋ช
์์
์ ํ์ํ ํค ๊ด๋ฆฌ๋ฅผ ์ง์( ์บ์ฑํ์ฌ ์ํธ ํต์ ์ ๋ณด์์ ๊ฐํํ๋ ๋ฐ ์ฌ์ฉ)
software-properties-common : ์ํํธ์จ์ด ์์ค ๋ฐ ํจํค์ง ๊ด๋ฆฌ๋ฅผ ์ํ ๊ณตํต ์ํํธ์จ์ด ์์ฑ์ ์ ๊ณตํ๋ ํจํค์ง : add-apt-repository ์ ๊ฐ์ ์ ์ฉํ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋จ
GPG ํผ๋ธ๋ฆญ ํค ์๋ฌ
GPG (GNU Privacy Guard) ???? - ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๋ฐ ๋ฐ์ดํฐ ์ํธํ๋ฅผ ์ํ ์คํ ์์ค ์ํํธ์จ์ด๋ก, PGP(Pretty Good Privacy)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก์ผ๋ฉฐ, ๋ณด์ํต์ ์ ์ํ ์คํ์์ค - ๊ณต๊ฐ ํค(Public Key) : ์ด ํค๋ ๋ค๋ฅธ ์ฌ๋ฆ๋ค์๊ฒ ๊ณต์ ๋๋ฉฐ, ์ด ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ฉ์์ง๋ฅผ ์ํธํํ๊ฑฐ๋ ์ฌ์ฉ์์ ๋์งํธ ์๋ช
์ ๊ฒ์ฆํ ์ ์๋ค - .๋น๊ณต๊ฐ ํค(Private Key) : ์ด ํค๋ ์ฌ์ฉ์๋ง ์๊ณ ์์ด์ผ ํ๊ณ ์ด ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์์ง๋ฅผ ํด๋
ํ๊ฑฐ๋ ์์ ์ ๋์งํธ ์๋ช
์ ๋ง๋ค ์ ์๋ค - GPG ํค๋ ๋์งํธ ์๋ช
, ์ํธํ, ์ํํธ์จ์ด ํจํค์ง์ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ ๋ฑ์ ์ฌ์ฉ ๋๋ค Ex) ์คํ ์์ค ์ํํธ์จ์ด์ ๊ฐ๋ฐ์๋ GPG ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ํํธ์จ์ด ํจํค์ง์ ์๋ช
ํ๊ณ , ์ฌ์ฉ์๋ ๊ทธ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ด๋ก๋ํ ์ํํธ์จ์ด๊ฐ ์๋ณธ ๊ทธ๋๋ก์์ ํ์ธํ ์ ์๋ค
W: GPG error: https://download.docker.com/linux/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
E: The repository 'https://download.docker.com/linux/ubuntu focal InRelease' is not signed.
ํด๋น ์๋ฌ : Docker ์ ์ฅ์์ GPG ํค๊ฐ ์์คํ
์ ์ ๋๋ก ์ถ๊ฐ๋์ง ์์๋ค...๋ผ๋ ์๋ฏธ
๐๐๐๐๐
์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
GPG ํค ์ถ๊ฐ : ์ค๋ฅ ๋ฉ์์ง์๋ ๋๋ฝ๋ ๊ณต๊ฐ ํค(NO_PUBKEY 7EA0A9C3F273FCD8) ๊ฐ ํ์๋ฉ๋๋ค. ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์์คํ
์ ์ ๋ขฐํ ์ ์๋ ํค ๋ชฉ๋ก์ ์ด ํค๋ฅผ ์ถ๊ฐ ํด์ผ ํ๋ค!!
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg : Docker์ GPG ํค๋ฅผ ์์ ํ๊ฒ ๋ค์ด๋ก๋ํ๋ค... ์ฌ๊ธฐ์ -f ๋ ์คํจ ์ ์๋ฌ๋ฅผ ๋ฐํํ๊ณ , -s ๋ ์นจ๋ฌต ๋ชจ๋(์ถ๋ ฅ ์์)๋ก ์คํํ๋ฉฐ, -S ๋ ์๋ฌ ๋ฐ์ ์ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅ, -L ๋ ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ๋ฐ๋ฆ
| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg : ๋ค์ด๋ก๋ํ GPG ํค๋ฅผ dearmor ํ์ฌ ๋ฐ์ด๋๋ฆฌ ํ์์ผ๋ก ๋ณํํ๊ณ /usr/share/keyrings/docker-archive-keyring.gpg์ ์ ์ฅ
2. Docker ์ ์ฅ์ ์ถ๊ฐ : ์ด์ ์ ํค๊ฐ ์ ๋๋ก ์ถ๊ฐ๋์ง ์์ ๊ฒฝ์ฐ ์ง์ ๋ ํค๋ฅผ ์ฌ์ฉํ์ฌ Docker ์ ์ฅ์๋ฅผ ๋ค์ ์ถ๊ฐํด์ผ ํ ์ ๋ ์๋ค
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3. ์์คํ
์
๋ฐ์ดํธ : ํค์ ์ ์ฅ์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ถ๊ฐํ ํ ํจํค์ง ์์ธ์ ์
๋ฐ์ดํธ
sudo apt-get update
4. Docker ์ค์น
sudo apt-get install docker-ce docker-ce-cli containerd.io
docker -v
๋์ปค์ ๊ธฐ๋ณธ ๋ช
๋ น์ด๋ค
$ docker run // ์ ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ณ ์คํ
$ docker ps // ์คํ ์ค์ธ ์ปจํ
์ด๋์ ๋ชฉ๋ก์ ๋ณด์ฌ์ค, -a ์ต์
์ ์ถ๊ฐํ๋ฉด ์ข
๋ฃ๋ ์ปจํ
์ด๋๊น์ง
$ doxker stop // ์คํ ์ค์ธ ์ปจํ
์ด๋๋ฅผ ์ ์ง
$ docker rm // ์ปจํ
์ด๋ ์ญ์
$ docker images // ์์คํ
์ ์๋ ๋์ปค ์ด๋ฏธ์ง์ ๋ชฉ๋ก์ ๋ณด์ฌ์ค
$ docker pull // ๋ฆฌ๋ชจํธ ์ ์ฅ์์์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ ๋ฐ๊ธฐ
$ docker build // doxkerfile์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋น๋
docker-compose & jenkins ์ค์น
Docker Compose ???? - ์ฌ๋ฌ ๊ฐ์ Docker ์ปจํ
์ด๋๋ค์ ํ๋์ ์๋น์ค๋ก ์ ์ํ๊ณ ๊ตฌ์ฑํด ํ๋์ ๋ฌถ์์ผ๋ก ๊ด๋ผํ ์ ์๋ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋๋ ๊ฒ
๋์ปค ์ปดํฌ์ฆ ์ค์น
# ๋์ปค ์ปดํฌ์ฆ V2 ๋ฒ์ ์ค์น
sudo curl -sSL "https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# ์คํ ๊ถํ ์ค์
chmod +x /usr/local/bin/docker-compose
# ๋ฒ์ ํ์ธ
docker-compose --version
docker-compose.yml ์์ฑ
version: '3.7'
services:
jenkins:
image: 'jenkins/jenkins'
restart: unless-stopped
user: root
privileged: true
ports:
- '9090:8080'
volumes:
- '/home/ubuntu/docker/jenkins-data:/var/jenkins_home'
- '/var/run/docker.sock:/var/run/docker.sock'
- '/usr/bin/docker:/usr/bin/docker'
container_name: 'jenkins'
ํด๋น ๋ช
๋ น์ด๋ฅผ ํตํด ๋น๋ฒ ํ์ธํ ์ ์์ต๋๋ค
์ฐธ๊ณ
https://seosh817.tistory.com/345
[Docker] ๋์ปค๋? - ๋์ปค ๊ฐ๋
์ ๋ฆฌ
๋์ปค๋? ๋์ปค(Docker)๋ ๋ฆฌ๋
์ค ์ปจํ
์ด๋์ ๋ฆฌ๋
์ค ์ดํ๋ฆฌ์ผ์ด์
์ ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ ์ฝ๊ฒ ์ปจํ
์ด๋๋ก ์คํํ๊ณ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ์คํ์์ค ํ๋ก์ ํธ ์
๋๋ค. ๋์ปค๋ ์ผ๋ฐ์
seosh817.tistory.com
https://uyfuyfuy-042.tistory.com/entry/GPG-keyPGP
GPG key(PGP)
GPG(GNU Privacy Guard) ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๋ฐ ๋ฐ์ดํฐ ์ํธํ๋ฅผ ์ํ ์คํ ์์ค ์ํํธ์จ์ด์
๋๋ค. PGP(Pretty Good Privacy)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก์ผ๋ฉฐ, ๋ณด์ํต์ ์ ์ํ ์คํ์์ค์ด๋ค. ๊ณต๊ฐ ํค(Public Key): ์ด ํค๋
uyfuyfuy-042.tistory.com
https://hstory0208.tistory.com/entry/Docker-%EB%8F%84%EC%BB%A4-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%B4%9D%EB%AA%A8%EC%9D%8C%EC%A7%91-image-container-compose
[Docker] ๋์ปค ๋ช
๋ น์ด ์ด๋ชจ์์ง (image, container, compose)
๐ Docker ์คํ sudo systemctl status docker # 1 sudo /etc/init.d/docker start # 2 Docker Image ๊ด๋ จ ๋ช
๋ น์ด ์ด๋ฏธ์ง ๋น๋ Dockerfile์ ์ด์ฉํด์ ์ด๋ฏธ์ง ์์ฑ (์ ์ผ ๋ง์ด ์ฐ๋ ์ด๋ฏธ์ง ์์ฑ ๋ฐฉ๋ฒ) โก docker build -t {์ด๋ฏธ์ง
hstory0208.tistory.com
https://hstory0208.tistory.com/entry/Docker-%EB%8F%84%EC%BB%A4-%EC%BB%B4%ED%8F%AC%EC%A6%88Docker-Compose%EB%9E%80-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80
[Docker] ๋์ปค ์ปดํฌ์ฆ(Docker Compose)๋? ์ ์ฌ์ฉํ๋๊ฐ?
๐ ๋์ปค ์ปดํฌ์ฆ๋? ์ฌ๋ฌ ๊ฐ์ Docker ์ปจํ
์ด๋๋ค์ ํ๋์ ์๋น์ค๋ก ์ ์ํ๊ณ ๊ตฌ์ฑํด ํ๋์ ๋ฌถ์์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋๋ ๊ฒ์ด๋ค. ๋์ปค ์ปดํฌ์ฆ ์ค์น # ๋์ปค ์ปดํฌ์ฆ V2
hstory0208.tistory.com
https://velog.io/@suhongkim98/jenkins-%EB%8F%84%EC%BB%A4%EB%A1%9C-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0
jenkins ๋์ปค๋ก ์ค์นํ๊ธฐ
์ฐ๋ถํฌ์ ์ ํจ์ค๋ฅผ ๋์ปค๋ก ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค
velog.io