gitlab-runner 컨테이너에서 apache2 컨테이너로 ssh 접속하는 방법을 알아보도록 하겠습니다.
apache2 는 docker-compose 로 설치되어 있고
version: "3"
services:
apache2:
build: ./Project/apache2
restart: always
container_name: apache2
links:
- mysql
ports:
- "9080:80"
- "9022:22"
volumes:
- ./Project/apache2/html/:/var/www/html/
- ./Project/apache2/conf/httpd.conf/:/usr/local/apache2/conf/httpd.conf
networks:
- default
- apm_net
mysql:
image: mysql:8.0
restart: always
container_name: mysql
volumes:
- ./Project/mysql/data/:/var/lib/mysql/
- ./Project/mysql/log/:/var/log/mysql/
ports:
- "3306:3306"
environment:
SERVICE_TAG: dev
SERVICE_NAME: mysql
env_file:
- ./env/.mysql.env
networks:
- default
- apm_net
networks:
apm_net:
driver: bridge
보시면 networks 를 apm_net 을 사용하고 있습니다.
docker network 조회를 해보겠습니다.
docker network ls
[cofor@localhost apm_each]$ docker network ls
NETWORK ID NAME DRIVER SCOPE
4a98a9d0ada5 apm_each_apm_net bridge local
8c107d01909b apm_each_default bridge local
a41874ac9738 bridge bridge local
dcbca47f6f39 host host local
4c102bcb71e0 none null local
NAME 에보면 apm_each_apm_net 사용하는걸 볼수 있습니다.
gitlab-runner 의 network 를 apm_each_apm_net 와 같이 사용해야 ssh 접속할수 있습니다.
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
--network apm_each_apm_net \
gitlab/gitlab-runner:latest
apache2 컨테이너로 ssh 접속
ssh root@172.23.0.3
ssh root@apache2 # 컨테이너 이름
컨테이너 ip 확인하는 법
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' apache2
접속하면 root 암호를 물어봅니다.
공개키를 이용하여 암호 없이 접속해보겠습니다.
gitlab-runner 컨테이너에 접속합니다.
docker exec -it gitlab-runner bash
cd ~
whoami 실행후 계정이 gitlab-runner 인지 확인해봐야 합니다.
su - gitlab-runner
gitlab-runner@1416567744ff:~# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:Y72tOcAcke9aN0rNqauUA3ASfH12x6C0HHw3eYXjLb8 root@1416567744ff
The key's randomart image is:
+---[RSA 3072]----+
| .. . oo .o oo|
| ... +o++o O .|
| o.. =+o + = |
| + ... o .|
| .oSo.o . o |
| o+o+o* .|
| +=.+.. .|
| ...+o E |
| ..+o |
+----[SHA256]-----+
그냥 엔터 눌러줍니다. 그럼 .ssh 디렉토리 안에 공개키/개인키가 생성됩니다.
공개키를 apache2 컨테이너에 복사합니다.
ssh-copy-id root@172.25.0.3
ssh-copy-id root@apache2 #컨테이너 이름
접속되는지 확인해봅니다.
root@1416567744ff:~# ssh root@172.25.0.3
Last login: Wed Feb 8 07:45:29 2023 from 172.25.0.4
root@fabe0096c9b4:~#
비밀번호 물어보지 않고 잘 접속 됩니다.
끝
'인프라' 카테고리의 다른 글
docker Dockerfile 이용한 ubuntu + APM + gitlab + gitlab-runner + git 설정 (0) | 2023.02.10 |
---|---|
docker APM + gitlab + gitlab-runner 오류발생시 (0) | 2023.02.09 |
docker SSH 를 사용하여 docker 컨테이너에 연결방법 (0) | 2023.02.08 |
docker-compose apache2 + php + mysql8 (APM)서버 구축 (0) | 2023.02.08 |
docker gitlab / gitlab-runner 설치 (0) | 2023.02.08 |