3 분 소요

Docker

image

  • 도커(Docker)는 리눅스 컨테이너를 생성, 배포 및 실행하기 위한 플랫폼이며, 가상화 기술을 이용하여 응용 프로그램을 패키징하고, 이를 실행하는 환경을 제공한다

  • 도커 컨테이너는 가상화된 공간을 생성하기 위해 리눅스의 자체 기능인 chroot, 네임스페이스, croup를 사용함으로써 프로세스 단위의 격리 환경을 만들기 때문에 성능손실이 거의 없다.

  • 컨테이너에 필요한 커널은 호스트의 커널을 공유해 사용하고, 컨테이너 안에는 애플리케이션을 구동하는데 필요한 라이브러리 및 실행 파일만 존재하기 때문에 컨테이너를 이미지로 만들었을 때 이미지의 용량 또한 가상 머신에 비해 대폭 줄었다.


Docker 엔진

  • 도커 엔진에서 사용하는 기본 단위는 이미지와 컨테이너이다.

Docer 이미지

  • 이미지는 컨테이너를 생성할 때 필요한 요소이며, 가상머신을 생성할 때 사용하는 iso 파일과 비슷한 개념이다.

  • 이미지는 여러 개의 계층으로 된 바이너리 파일로 존재하고, 컨테이너를 생성하고 실행할 때 읽기 전용으로 사용된다.

  • 이미지는 도커 명령어로 내려받을 수 있으므로 별도로 설치할 필요는 없다.


- 컨테이너의 기본사용자는 root
- 호스트 이름은 무작위 16진수 해쉬값이다.
- 기본적으로 도커는 컨테이너에 NAT로 172.17.0X의 IP를 순차적으로 할당한다.
- 아무런 설정을 하지 않았다면 이 컨테이너는 외부에 접근할 수 없으며 도커가 설치된 호스트에서만 접근할 수 있다.
- 외부와 통신하려면 ETH0 IP와 포트를 호스트의 IP와 포트에 바인딩 해야한다.
docver -v : 설치된 도커 엔진의 버전 확인
docker run -i -t [OSname] : 이미지 저장소인 도커 허브에서 이미지를 내려받고 실행 명령어
ctrl+q+p : 실행된채로 빠져나올 수 있다. 
exit : 컨테이너가 stop되고 빠져나온다. 
docker rmi [image name] => 설치한 docker images를 삭제
docker stop [container name] => 설치한 컨테이너의 동작을 멈춤
docker rm [container name] => 설치된 컨테이너 삭제 (삭제 시 stop 후 삭제)

image

# Docker apache2 설치 후 실습

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl enable --now docker
wget get.docker.com =>  wget : 웹 상의 파일을 다운로드 받을 때 사용하는 명령어
docker run -i -t --name network_test ubuntu:14.04
ifconfig => 172.17.0.2 ip를 확인할 수 있음
exit
docker container prune => 일괄삭제
docker run -it --name myfirstwebserver -p 80:80 ubuntu:14.04
apt-get update
apt-get install apache2 -y
service apache2 start
ctrl+shift+q+p 로 실행 상태로 빠져나온 후
ifconfig ip 확인
10.10.51.41:80으로 설치된 아파치 서버를 확인할 수 있다.

image

# ubuntu container에 owncloud 구축하기

docker container prune => 삭제시 실행되어있나 확인.
docker ps
docker ps -a
docker pull ubuntu:20.04
docker create -i -t --name owncloud -p 80:80 ubuntu:20.4
docker start owncloud
docker attach owncloud
apt update -y && apt upgrade -y =>update , upgrade 둘다 해야함.

apt install software-properties-common =>PPA를 추가 또는 제거하는 툴이다.
Y
6. aisa
70. seoul
add-apt-repository ppa:ondrej/php => 정적 아파치서버가 아닌 php를 사용하여 동적 아파치 구동
apt update
apt upgrade
apt install libapache2-mod-php7.4 openssl php-imagick php7.4-common php7.4-curl php7.4-gd php7.4-imap php7.4-intl php7.4-json php7.4-ldap php7.4-mbstring php7.4-mysql php7.4-pgsql php-smbclient php-ssh2 php7.4-sqlite3 php7.4-xml php7.4-zip
service apache2 start =>ubuntu는 servcie이다.
apt install mariadb-server
service mysql start
mysql -u root -p => 비밀번호를 지금 생성 '1111' 로 함
CREATE DATABASE owncloud_db;
GRANT ALL ON owncloud_db.* TO 'owncloud_user'@'localhost' IDENTIFIED BY '1111';
FLUSH PRIVILEGES;
EXIT;
apt install wget
wget [owncloud server packages의 zip archive 경로를 복사]
ls => woncloud-complete-latest.zip 파일을 확인
apt install unzip
unzip owncloud-complete-latest.zip -d /var/www
rm -rf owncloud-complete-latest.zip => 압축 원본 파일은 삭제해서 용량 줄임
cd /var/www
ls => 압축 잘 풀렸는지 확인
chown -R www-data:www-data /var/www/owncloud/ => owncloud의 디렉토리와 그 하위 디렉토리들의 소유자와 그룹을 www-data로 재귀적 변경
apt install vim
vim /etc/apache2/conf-available/owncloud.conf
!
Alias /owncloud "/var/www/owncloud/“
<Directory /var/www/owncloud/>
 Options +FollowSymlinks
 AllowOverride All
<IfModule mod_dav.c>
 Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
!
:wq
sudo a2enconf owncloud
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
service apache2 restart
http://10.10.51.41/owncloud/ => 접속 확인.

# Amazon linux AMI에 own cloud 구축

yum update
amazon-linux
amazon-linux-extras install php7.4 -y
yum install php-cli php-common php-gd php-mbstring php-mysqlnd php-pdo 
php-fpm php-xml curl -y
yum install php-opcache php-zip php-bcmath libzip-devel php-devel php-pear gcc
vi /etc/php-fpm.d/www.conf
!
user = nginx
group = nginx
:wq
!
vi /etc/php.ini
date.timezone = Asia/Seoul
:wq
!
systemctl restart php-fpm
systemctl enable --now php-fpm.service
chmod 775 /var/lib/php/session/ -R
chown nginx.nginx /var/lib/php/session/ -R
amazon-linux-extras install nginx1.12 -y
systemctl enable --now nginx.service
!
vi /etc/nginx/nginx.conf
:set nu
43 root /usr/share/nginx/html/owncloud;
:wq
!
systemctl restart nginx.service
cd /usr/share/nginx/html/
wget -q https://download.owncloud.com/server/stable/owncloud-complete-latest.zip
ls 
unzip ownclooud-complete-latest.zip
ls -l
chmod 775 owncloud -R
chown nginx.nginx owncloud -R
sudo vi /etc/yum.repos.d/MariaDB.repo
!
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
:wq
yum install MariaDB MariaDB-server -y
systemctl start mariadb.service
systemctl enable --now mariadb
/usr/bin/mysqladmin -u root password
mysql -u root -p
CREATE DATABASE owncloud default CHARACTER SET UTF8;
exit;

태그:

카테고리:

업데이트:

댓글남기기