728x90

목동코딩:

2014년 7월쯤,

YTN뉴스를 보는데,깜빡 거리며 줄광고가 지나간다.

2015학년도 부터 코딩교육을 의무화한다고, 그런데 진행되지 않더니,

2018년이 되어서야 진행되기 시작한다. 그이유가 내 생각엔 기르칠 선생님이 없어서라 생각한다.

내가 전공이 컴퓨터학과 이고 실무를 해온 생각을 해보면, 윈도우의 벽을 넘지 못한 개발자가 많았다. 명령어를 입력하는 조금은 까다로운 방식을 조금은 전문적이라고 생각하던, 그 당시엔 사용법이 쉬워서 무시했던거 같다.

사용이 쉬운거지 윈도우용 프로그램 개발이 쉬운게 아닌데 ㅎㅎ.

나는 다행스럽게 90년도 초반에 윈도우용 응용프로그램 개발을 하게되었고 , 그 경력으로 COBOL개발자에서 윈도우용 어플개발자로 적응하게 되어어 대기업에 경력으로 이직을 할 수있었다.

다시 코딩얘기로 돌아온 지금의 상황을 보면

이제 2025 년부터 본격적인 코딩교육이 시작된다고 한다. 하지만 아직도 가르칠 선생님이 많이 부족하다. 마치 우리가 영어공부 할때 문법만 주구장창 배워서 실 생활어 전혀 도움이 되지 않았듯이, 코딩도 문법만 가르치는 경우가 많다. 하지만 코딩공부는 실전이다.

프로젝트는 안 해본 수업하는걸 자주 보게된다. 해본거만 잘 하는 코더가 필요한게 아니다.

앞으로의 코딩은 플랫폼을 만들수 있어야한다. 플랫폼 사용법만 배우는 코딩수업은 제대로된 코딩교육이 아니다.

AI가 크게 약진하고 있다.

AI를 간과 해서는 안될것이다.

 

목동코딩 온라인코딩교육
목동코딩 온라인코딩교육
목동코딩 온라인코딩교육
목동코딩 온라인코딩교육
목동코딩 온라인코딩교육

 

 

생활속 기부캠페인

728x90
728x90

지금 유지보수 하는 업체의 서버를 이전 해야할 필요가 생겼다.

서버 작업은 자주 하지 않다 보니 매번 새롭다.

게다가 버전을 맞추어 작업을 하다보니 몇 번을 해도 거의 같은 시간이 걸린다 ㅎㅎ

다음에 참조하기 위해 작업한 내용을 기록한다.

이번 작업은 클라우드 서버에 ubuntu, Docker등을 설치할 예정이다

----------------------------------

서버 : ubuntu 20.04

볼륨추가 : 1000Giga Byte

ubuntu@ubuntu1:~$ sudo su
root@ubuntu1:/home/ubuntu# fdisk -l

#파티션을 나눈다
root@ubuntu1:/home/ubuntu# fdisk /dev/vdc

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x452e13e9.

Command (m for help): n
Partition type
p   primary (0 primary, 0 extended, 4 free)
e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151999, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151999, default 2097151999):

Created a new partition 1 of type 'Linux' and of size 1000 GiB.

Command (m for help): p
Disk /dev/vdc: 1000 GiB, 1073741824000 bytes, 2097152000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x452e13e9

Device     Boot Start        End    Sectors  Size Id Type
/dev/vdc1        2048 2097151999 2097149952 1000G 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@ubuntu1:/home/ubuntu# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           394M 1004K  393M   1% /run
/dev/vda1        97G  1.8G   95G   2% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop0       62M   62M     0 100% /snap/core20/1270
/dev/loop1       68M   68M     0 100% /snap/lxd/21835
/dev/vda15      105M  5.2M  100M   5% /boot/efi
tmpfs           394M     0  394M   0% /run/user/1000
/dev/loop3       50M   50M     0 100% /snap/snapd/18357
/dev/loop4       64M   64M     0 100% /snap/core20/1822
/dev/loop5       92M   92M     0 100% /snap/lxd/24061

#파티션을 포맷한다
root@ubuntu1:/home/ubuntu# mkfs.ext4 /dev/vdc1

#UUID를 확보한다
root@ubuntu1:/home/ubuntu# blkid

#디랙토리를 만든다
root@ubuntu1:/home/ubuntu# mkdir -p /home/ubuntu/storage

#재부팅시 자동 연결하기 위해서 파일에 설정한다
root@ubuntu1:/home/ubuntu# vi /etc/fstab
LABEL=cloudimg-rootfs   /        ext4   defaults        0 1
LABEL=UEFI      /boot/efi       vfat    umask=0077      0 1
/dev/vdb        none    swap    sw,comment=cloudconfig  0       0
UUID=0a76a959-85d1-4e8c-8fe6-6e8d036017f7 /home/ubuntu/storage ext4 defaults 0 0

root@ubuntu1:/home/ubuntu# mount -a
root@ubuntu1:/home/ubuntu# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           394M  992K  393M   1% /run
/dev/vda1        97G  1.9G   95G   2% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop0       62M   62M     0 100% /snap/core20/1270
/dev/loop1       68M   68M     0 100% /snap/lxd/21835
/dev/vda15      105M  5.2M  100M   5% /boot/efi
tmpfs           394M     0  394M   0% /run/user/1000
/dev/loop3       50M   50M     0 100% /snap/snapd/18357
/dev/loop4       64M   64M     0 100% /snap/core20/1822
/dev/loop5       92M   92M     0 100% /snap/lxd/24061
/dev/vdc1       984G   77M  934G   1% /home/ubuntu/storage

#볼륨을 해제하고 다시 사용할때 사용한다
umount /home/ubuntu/storage << 마운트 해제시

Mysql  설치 및 원격접속 허용

apt-get install mariadb-server
mysql -uroot

> use mysql;
update user set authentication_string=password('password') where user='root';
flush priviledges ;
grant all privileges on . to 'root'@'%' identified by 'password';
> 

root@ubuntu1:/home/ubuntu/storage# cd /etc
root@ubuntu1:/etc# cd mysql

root@ubuntu1:/etc/mysql# ls
conf.d  debian-start  debian.cnf  mariadb.cnf  mariadb.conf.d  my.cnf  my.cnf.fallback

root@ubuntu1:/etc/mysql# cd mariadb.conf.d

root@ubuntu1:/etc/mysql/mariadb.conf.d# ls
50-client.cnf  50-mysql-clients.cnf  50-mysqld_safe.cnf  50-server.cnf

root@ubuntu1:/etc/mysql/mariadb.conf.d# vi 50-server.cnf
127.0.0.1  >> 0.0.0.1 로변경
root@ubuntu1:/etc/mysql/mariadb.conf.d# systemctl restart mysql

>> sql 파일로  DB를 생성함

asp.net core 3.1설치

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
 -O packages-microsoft-prod.deb

nginx proxy 설정

server {
listen        80;
server_name   example.com *.example.com;

		location / {
		    proxy_pass         <http://localhost:5000>;
		    proxy_http_version 1.1;
		    proxy_set_header   Upgrade $http_upgrade;
		    proxy_set_header   Connection keep-alive;
		    proxy_set_header   Host $host;
		    proxy_cache_bypass $http_upgrade;
		    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
		    proxy_set_header   X-Forwarded-Proto $scheme;
		}
		location /downloads {
		    alias /var/downloads/;
		    autoindex on;
		    limit_rate_after 10M;
		    limit_rate 5M;
		    access_log /var/log/nginx/down.access.log;
		    error_log  /var/log/nginx/down.error.log;
		    charset utf-8;
		}

}

Docker 설치

오래된 버전 삭제하기

혹시나 기존의 오래된 버전이 있는지 확실히 할 수 있으며, 있다면 최신 버전 설치를 위해 삭제 해줍니다.

bash

$ sudo apt-get update

$ sudo apt-get -y install \ apt-transport-https \ ca-certificates \ curl \ gnupg 
\ lsb-release 

curl -fsSL
[https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg)

| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \

"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]

[https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu)

\

$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker Engine 설치하기

아래 명령어를 입력하면 자동으로 최신 버전이 설치 됩니다.

$ sudo apt-get update

$ sudo apt-get install docker-ce docker-ce-cli

[containerd.io](http://containerd.io/)

설치 완료

설치가 완료된 후에는

bash

$docker --version

$apt install docker-compose

$cd /home/ubuntu/appnet
$docker-compose up -d

vi Dockerfile
FROM ubuntu:20.04

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Seoul
RUN apt-get update
RUN apt-get install -y tzdata

RUN apt-get update && apt-get -y install apache2 software-properties-common
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
RUN apt-get update && apt-get install -y libapache2-mod-php7.3 php7.3 php7.3-cli php7.3-mysql
RUN a2enmod rewrite
EXPOSE 80
CMD apachectl -D FOREGROUND

RUN apt install vim -y
RUN apt install net-tools -y
RUN apt install iputils-ping -y

RUN apt update -y
RUN apt install language-pack-ko -y
RUN apt install fonts-nanum -y
RUN apt install fonts-nanum-coding -y
RUN apt install fonts-noto-cjk -y
ENV LANG ko_KR.UTF-8
ENV LANGUAGE ko_KR.UTF-8
ENV LC_ALL ko_KR.UTF-8

WORKDIR /
===================================
vi docker-compose.yml
version: '2'

services:
    ubuntu2004:
        hostname: a
        container_name: a_container
        build:
            context: .
            dockerfile: ./Dockerfile
        ports:
            - "8100:80"
        stdin_open: true
        tty: true
        environment:
            - TZ:"Asia/Seoul"
        volumes:
            - ./html:/var/www/html
========================
cd /etc/nginx/sites-available
vi default
server {
    listen        80;
    server_name   example.com *.example.com;

    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
    location /downloads {
        alias /var/downloads/;
        autoindex on;
        limit_rate_after 10M;
        limit_rate 5M;
        access_log /var/log/nginx/down.access.log;
        error_log  /var/log/nginx/down.error.log;
        charset utf-8;
    }
}
server {
    listen        80;
    server_name   example.com *.example.com;

    location / {
        proxy_pass         http://localhost:8100;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
    location /downloads {
        alias /var/downloads/;
        autoindex on;
        limit_rate_after 10M;
        limit_rate 5M;
        access_log /var/log/nginx/down.access.log;
        error_log  /var/log/nginx/down.error.log;
        charset utf-8;
    }
}

service nginx restart

http://localhost:8100 은 실행됨

DNS변경 작업

 

- 이상 -

 

 

 

목동코딩학원 : 유니티, 로블록스 게임개발 교육

 

728x90
728x90

Docker container에서 curl을 사용하려면 다음과 같은 방법 중 하나를 선택하여 진행할 수 있습니다.

  1. curl이 이미 설치된 Docker 이미지를 사용하기
    • curl이 이미 설치된 Docker 이미지를 사용하면 curl 명령어를 사용할 수 있습니다. 예를 들어, ubuntu 이미지를 사용하여 Docker 컨테이너를 실행하면 curl을 사용할 수 있습니다.
docker run -it ubuntu
  1. 컨테이너 내부에서 curl 명령어를 실행하면, 컨테이너 내부에 설치된 curl을 사용할 수 있습니다.
  2. Docker 컨테이너 내부에 curl 설치하기
    • Docker 컨테이너 내부에 curl을 설치하여 사용할 수도 있습니다. 이를 위해서는 Dockerfile에서 curl을 설치하고 이미지를 빌드해야 합니다. 예를 들어, 다음과 같은 Dockerfile을 작성하여 curl을 설치한 이미지를 빌드할 수 있습니다.
FROM ubuntu:latest

RUN apt-get update && apt-get install -y curl

이후, 다음과 같이 Docker 이미지를 빌드하여 컨테이너를 실행할 수 있습니다

docker build -t myimage .
docker run -it myimage
  1. 컨테이너 내부에서 curl 명령어를 실행하면, 컨테이너 내부에 설치된 curl을 사용할 수 있습니다.
  2. Docker 컨테이너 외부에서 curl 사용하기
    • Docker 컨테이너 외부에서 curl 명령어를 실행할 수 있습니다. 이를 위해서는 docker exec 명령어를 사용하여 컨테이너 내부에서 curl 명령어를 실행해야 합니다. 예를 들어, 다음과 같이 컨테이너를 실행하고 docker exec 명령어를 사용하여 컨테이너 내부에서 curl 명령어를 실행할 수 있습니다.
docker run -it myimage
# 컨테이너 내부에서 실행
curl https://www.google.com
# 컨테이너 외부에서 실행
docker exec <container_id> curl https://www.google.com

위와 같이 curl을 사용하여 Docker 컨테이너 내부와 외부에서 데이터를 송수신할 수 있습니다

728x90
728x90

ChatGPT와 같은 대화형 인공지능 API를 Python에서 사용하려면 다음과 같은 단계를 수행해야 합니다.

  1. ChatGPT API를 사용하기 위해 API 키를 발급받습니다. API 키는 OpenAI 사이트에서 발급받을 수 있습니다.
  2. Python에서 requests 모듈을 사용하여 ChatGPT API를 호출합니다.
import requests
import json

prompt = "Hello, how are you?"

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

data = {
    "prompt": prompt,
    "temperature": 0.5,
    "max_tokens": 60,
    "top_p": 1,
    "frequency_penalty": 0,
    "presence_penalty": 0
}

response = requests.post("https://api.openai.com/v1/engines/davinci-codex/completions", headers=headers, json=data)

response_data = json.loads(response.text)
print(response_data['choices'][0]['text'])

 

위 코드는 requests 모듈을 사용하여 ChatGPT API를 호출하는 예시입니다. API 호출 시 https://api.openai.com/v1/engines/davinci-codex/completions URL을 사용하며, headers 변수를 통해 API 키를 인증합니다. 그리고 data 변수를 통해 인공지능 모델에 전달할 문장과 다양한 옵션을 설정합니다.

  1. API 호출 결과는 response 변수에 저장됩니다. 이 값을 json.loads 함수를 사용하여 JSON 형태로 디코딩한 뒤, 필요한 정보를 추출하여 사용할 수 있습니다. 위 코드에서는 response_data['choices'][0]['text']를 통해 반환된 답변을 출력하고 있습니다.
  2. 이제 ChatGPT API를 사용하여 Python 애플리케이션에서 인공지능 대화 시스템을 구현할 수 있습니다.

 

목동코딩학원 : 온라인코딩교육, 유니티게임개발교육, 로블록스게임개발교육, 한국서비스산업진흥원, 플랫폼프로젝트수업

728x90
728x90

ChatGPT와 같은 대화형 인공지능 API를 PHP에서 사용하려면 다음과 같은 단계를 수행해야 합니다.

  1. ChatGPT API를 사용하기 위해 API 키를 발급받습니다. API 키는 OpenAI 사이트에서 발급받을 수 있습니다.
  2. PHP에서 HTTP 클라이언트를 사용하여 ChatGPT API를 호출합니다.
$prompt = "Hello, how are you?";

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.openai.com/v1/engines/davinci-codex/completions",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => json_encode([
        "prompt" => $prompt,
        "temperature" => 0.5,
        "max_tokens" => 60,
        "top_p" => 1,
        "frequency_penalty" => 0,
        "presence_penalty" => 0
    ]),
    CURLOPT_HTTPHEADER => [
        "content-type: application/json",
        "Authorization: Bearer YOUR_API_KEY"
    ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    $response_data = json_decode($response, true);
    echo $response_data['choices'][0]['text'];
}

위 코드는 curl 함수를 사용하여 ChatGPT API를 호출하는 예시입니다. API 호출 시 https://api.openai.com/v1/engines/davinci-codex/completions URL을 사용하며, prompt 속성을 통해 인공지능 모델에 전달할 문장을 지정합니다. 그리고 다양한 옵션들을 설정하고, CURLOPT_HTTPHEADER를 통해 API 키를 인증합니다.

  1. API 호출 결과는 curl_exec 함수의 반환값인 $response 변수에 저장됩니다. 이 값을 json_decode 함수를 사용하여 JSON 형태로 디코딩한 뒤, 필요한 정보를 추출하여 사용할 수 있습니다. 위 코드에서는 $response_data['choices'][0]['text']를 통해 반환된 답변을 출력하고 있습니다.
  2. 이제 ChatGPT API를 사용하여 PHP 애플리케이션에서 인공지능 대화 시스템을 구현할 수 있습니다.

 

목동코딩학원 : 온라인코딩교육, 유니티게임개발교육, 로블록스게임개발교육, 한국서비스산업진흥원, 플랫폼프로젝트수업
 

 

 
728x90
728x90

ChatGPT와 같은 대화형 인공지능 API를 React에서 사용하려면 다음과 같은 단계를 수행해야 합니다.

  1. ChatGPT API를 사용하기 위해 API 키를 발급받습니다. API 키는 OpenAI 사이트에서 발급받을 수 있습니다.
  2. React 프로젝트에서 Axios나 Fetch API와 같은 HTTP 클라이언트를 사용하여 ChatGPT API를 호출합니다.
const axios = require('axios');

const prompt = "Hello, how are you?";

axios.post('https://api.openai.com/v1/engines/davinci-codex/completions', {
    "prompt": prompt,
    "temperature": 0.5,
    "max_tokens": 60,
    "top_p": 1,
    "frequency_penalty": 0,
    "presence_penalty": 0
}, {
    headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR_API_KEY'
    }
})
.then((response) => {
    console.log(response.data.choices[0].text);
})
.catch((error) => {
    console.log(error);
});
  1. 위 코드는 Axios를 사용하여 ChatGPT API를 호출하는 예시입니다. API 호출 시 https://api.openai.com/v1/engines/davinci-codex/completions URL을 사용하며, prompt 속성을 통해 인공지능 모델에 전달할 문장을 지정합니다. 그리고 다양한 옵션들을 설정하고, headers를 통해 API 키를 인증합니다.
  2. API 호출 결과는 response.data 속성을 통해 접근할 수 있습니다. 위 코드에서는 response.data.choices[0].text를 통해 반환된 답변을 출력하고 있습니다.
  3. 이제 ChatGPT API를 사용하여 React 애플리케이션에서 인공지능 대화 시스템을 구현할 수 있습니다.

목동코딩학원 : 온라인코딩교육, 유니티게임개발교육, 로블록스게임개발교육, 한국서비스산업진흥원, 플랫폼프로젝트수업

728x90
728x90
<?php
$oCurl = curl_init();
        curl_setopt($oCurl,CURLOPT_URL,$url);
        curl_setopt($oCurl,CURLOPT_RETURNTRANSFER, true);
        curl_setopt($oCurl,CURLOPT_NOSIGNAL, 1);
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($oCurl, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($oCurl, CURLOPT_VERBOSE, true);
        curl_setopt($oCurl, CURLOPT_TIMEOUT, 3);
        $response = curl_exec($oCurl);
        $curl_errno = curl_errno($oCurl);
        $curl_error = curl_error($oCurl);

        curl_close($oCurl);
?>
이와 같이 php source를 실행하려는데 error 가 난다. 원인을 찾아보니 추가로 설치해야 하는가 보다 ㅎㅎ
=============

Fatal error: Uncaught Error: Call to undefined function curl_init() 에러는 PHP에서 cURL 확장을 로드하지 않은 경우 발생합니다. 이 에러를 수정하려면 다음과 같은 단계를 수행해야 합니다.

도커 컨테이너 안에 들어가서 PHP와 cURL을 설치해야 합니다. 컨테이너에 들어가는 방법은 docker exec 명령어를 사용하는 것입니다. 예를 들어, docker exec -it <container_name> bash 명령어를 사용하면 <container_name> 컨테이너에 bash 셸로 들어갈 수 있습니다.

컨테이너 안에서 다음과 같은 명령어를 실행하여 PHP와 cURL을 설치합니다.

sql
Copy code
apt-get update
apt-get install -y php-curl
이 명령어는 컨테이너 안에서 apt-get을 실행하여 패키지를 업데이트하고, php-curl 패키지를 설치합니다. 이 패키지는 PHP에서 cURL을 사용할 수 있도록 해 줍니다.

PHP-FPM 서비스를 재시작합니다. 이 작업은 도커 컨테이너를 다시 시작하여 수행할 수 있습니다.

php
Copy code
docker restart <container_name>
이제 다시 PHP를 실행하면 Fatal error: Uncaught Error: Call to undefined function curl_init() 에러가 발생하지 않아야 합니다.
728x90
728x90

내 개인 서버에 Docker를 설치해서 잘 사용하고 있다.

그런데 오늘 외부에서 사이트 접속을 하는데 연결이 되지 않는다.

급하게 노트북을 열고 명령어를 몇개 쳐봤는데

이런 메시지가 나와서 나는 재시작만 하면 될거로 생각했는데 되질 않는다.

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

 

$sudo systemctl status docker

위의 명령어로 상태를 보니 Active로 상채가 표시된다. 어쨌던

$sudo systemctl start docker 를 다시 실행하고 사이트를 실행해 보지만, 역시 에러가 난다.

이것 저것 해봐도 안되기에 결국 재부팅을 했다.

이제 docker ps -a 명령어가 먹는다.

원인을 알고 싶은데 너무 쉬게 재부팅 한게 조금 아쉽다.

아마도 메모리 문제가 아니었을까 싶은 생각이 든다..

$reboot now.....

728x90

+ Recent posts