728x90
๋ฐ์ํ
- 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
https://uyfuyfuy-042.tistory.com/entry/GPG-keyPGP
728x90
๋ฐ์ํ
'Devops' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฐํฌ ์ ๋ฆฌํ๊ธฐ(4) https ์ ์ฉํ๊ธฐ (0) | 2024.05.17 |
---|---|
๋ฐฐํฌ ์ ๋ฆฌํ๊ธฐ(3) Nginx ์ค์น (0) | 2024.05.14 |
๋ฐฐํฌ ์ ๋ฆฌํ๊ธฐ (1) ec2 ๋ฐ๊ธ, ufw ์ค์ , swap ๋ฉ๋ชจ๋ฆฌ ์ค์ (0) | 2024.05.07 |