도커 이미지와 컨테이너 삭제

프로그래밍 2019. 1. 24. 10:21 Posted by 상콩이

컨테이너 삭제

동작중인 컨테이너 확인

docker ps


정지된 컨테이너 확인

docker ps -a


컨테이너 삭제

docker rm "컨테이너ID"


삭제된 것 확인

docker ps -a


복수개 삭제 가능

docker rm "컨테이너ID", "컨테이너ID", ...


컨테이너 모두 삭제

docker rm 'docker ps -a -q'



이미지 삭제

현재 이미지 확인
docker images


이미지 삭제
docker rmi "이미지ID"


컨테이너를 삭제하기 전에 이미지를 삭제 할 경우
docker rmi -f "이미지ID"


1. cd /usr/share/zoneinfo 디렉토리로 이동후 ls를 입력하여 바꾸고 싶은 시간대가 있는지 확인합니다.


2. 한국 시간대(Seoul)로 변경해 보겠습니다.

    cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime 입력 후 y를 눌러 덮어 씌웁니다.


3. Mysql에서 select @@system_time_zone; 명령어를 수행하면 시간대(TimeZone)이 KST로 변경된 것을 확인할 수 있습니다. 

또한 select now(); 입력하여 시간이 맞는지 확인 해 봅니다.


4. 콘솔에 service mysqld restart 입력하여 mysql을 다시 실행시킵니다.

CORSFilter.java

package com.sangjin.cors;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class CORSFilter implements Filter {
        public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
                 HttpServletResponse response = (HttpServletResponse) res;
                 response.setHeader("Access-Control-Allow-Origin", "*");
                 response.setHeader("Access-Control-Allow-Methods", "POST, GET, DELETE, PUT");
                 response.setHeader("Access-Control-Max-Age", "3600");
                 response.setHeader("Access-Control-Allow-Headers", "x-requested-with, origin, content-type, accept");
                 chain.doFilter(req, res);
        }
 
        public void init(FilterConfig filterConfig) {} 

        public void destroy() {} 
}
web.xml

<filter>
      <filter-name>CORSFilter</filter-name>
      <filter-class>com.sangjin.cors.CORSFilter</filter-class> 
</filter>
<filter-mapping> 
      <filter-name>CORSFilter</filter-name> 
      <url-pattern>/*</url-pattern> 
</filter-mapping>

여기 ADMIN TABLE이 있습니다 구조는 아래와 같습니다.


ADMIN TABLE

 id

passwd 

 last_login


로그인 시에 로그인 시간 업데이트를 할 때 일반적으로

로그인을 해서 아이디 비밀번호가 일치하는 데이터가 존재한다면 1을 리턴 할 것이고 없으면 0을 리턴 할 것입니다.

그래서 1을 리턴 했을 경우에 로그인 시간을 업데이트 해주는데요 다음과 같습니다.


로그인 

SELECT count(*) FROM admin WHERE id='id' AND passwd='passwd';

로그인 시간 업데이트

UPDATE admin SET last_login=now();


이 두 개의 쿼리를 서브 쿼리를 이용하여 한번의 실행으로 처리하면 다음과 같습니다.

UPDATE admin SET last_login=now() 

WHERE (

SELECT * FROM (

SELECT count(*) FROM admin where id='111' AND passwd='121'

) AS A

)=1


update 쿼리는 처리가 되었을 경우 1을 리턴 아무 일도 일어나지 않았을 경우에는 0을 리턴함 으로

로그인이 되었는지 안되었는지 여부도 확인 및 처리가 가능합니다.


AWS의 MySQL에 HeidiSQL로 접속하기

프로그래밍/AWS 2018. 6. 29. 10:49 Posted by 상콩이

HeidiSQL 로 접속

이제 HeidiSQL로 연결을 해보자.

HeidiSQL을 실행하면 아래와 같이 입력해준다.

HeidiSQL aws connect

네트워크 유형 : MySQL(SSH tunnel)

호스트명 / IP : 127.0.0.1 or localhost)

포트 : MySQL 설치시 따로 바꾸지 않았다면 3306

이제 SSH 터널 탭으로 넘어갑니다.

plink.exe를 선택해 줍니다.

SSH 호스트 + 포트에 자신의 instance의 IPv4 퍼블릭 IP를, 포트는 22로 합니다.

사용자 이름 : ec2-user

plink.exe는 아래 링크를 타고 설치할 수도 있지만, putty 설치를 구글에 검색하면 그 중간에 plink.exe도 다운 받을 수 있습니다.

아래 링크를 들어가면 다운 받을 수 있습니다.

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

다음 개인 키 파일을 불러옵니다. 확장자가 .ppk 였던 것으로 불러오면 됩니다.

pem을 불러오면 에러가 남으로 주의 해야 합니다

포트는 MySQL포트와 다른 포트를 적어주어야 합니다. 3307이나 3308처럼 쓰이지 않는 포트를 넣어주는 것이 중요합니다.

이로써 연결이 정상적으로 완료되었습니다.

aws heidiSQL Complete

'프로그래밍 > AWS' 카테고리의 다른 글

AWS에 MySQL 설치하기  (0) 2018.06.29
AWS ec2 Linux FileZilla로 접속하기  (0) 2018.06.29
AWS ec2 Linux Putty로 접속하기  (0) 2018.06.29

AWS에 MySQL 설치하기

프로그래밍/AWS 2018. 6. 29. 10:37 Posted by 상콩이

Putty를 켜고 AWS EC2 인스턴스에 접속합니다.






sudo su root

root 권한으로 변경


yum update -y

패키지를 업데이트


yum install mysql5.X-server

5.x 버전의 mysql서버 설치





설치가 완료되면 설치된 mysql 버전을 확인해 봅니다.



mysql -V






service mysqld start



root 계정의 password를 설정해 봅시다.



mysqladmin -u root password



비밀번호와 비밀번호 재확인을 입력해줍니다.


mysql-u root -p


mysql root계정으로 접속



커서가 mysql> 로 변경됬다면 정상적으로 접속이 완료됬습니다.

'프로그래밍 > AWS' 카테고리의 다른 글

AWS의 MySQL에 HeidiSQL로 접속하기  (0) 2018.06.29
AWS ec2 Linux FileZilla로 접속하기  (0) 2018.06.29
AWS ec2 Linux Putty로 접속하기  (0) 2018.06.29

AWS ec2 Linux FileZilla로 접속하기

프로그래밍/AWS 2018. 6. 29. 10:19 Posted by 상콩이

윈도우즈에서 FileZilla를 사용하여 AWS EC2 인스턴스에 접속해보도록 하겠습니다.

AWS EC2로 접속하기 위해서는 일반적인 방법과는 조금 다른데요



먼저 AWS에 접속하여 인스턴스로 들어간후


본인이 접속할 서버의 IPv4 퍼블릭 IP를 복사합니다.



파일질라에서


  • 호스트 : 아까 복사한 IPv4 퍼블릭 IP

  • 프로토콜 : SFTP - SSH File Transfer Protocol

  • 로그온 유형 : 키 파일

  • 사용자 : ec2-user

  • 키파일 : .ppk 선택


이제 연결을 누르면 파일질라에 정상적으로 접속이 됩니다.





'프로그래밍 > AWS' 카테고리의 다른 글

AWS의 MySQL에 HeidiSQL로 접속하기  (0) 2018.06.29
AWS에 MySQL 설치하기  (0) 2018.06.29
AWS ec2 Linux Putty로 접속하기  (0) 2018.06.29

AWS ec2 Linux Putty로 접속하기

프로그래밍/AWS 2018. 6. 29. 09:51 Posted by 상콩이

윈도우즈에서 Putty를 사용하여 AWS EC2 인스턴스에 접속해보도록 하겠습니다.

AWS EC2로 접속하기 위해서는 일반적인 방법과는 조금 다른데요



Host Name 에는


일반적으로 ec2 접속계정의 아이디는 ec2-user 로 설정되어있습니다.


ec2-user@퍼블릭DNS(IPv4)주소 의 형식으로 적어줍니다



AWS로 로그인하여 EC2 인스턴스로 들어가서 본인이 접속할 서버의 퍼블릭 DNS(IPv4) 주소를 복사해주시면 되겠습니다.





그 후에 Putty의 왼쪽 메뉴에 보시면 SSH탭을 확장 후에


Auth탭으로 이동합니다


Private key file을 추가해 주기 위해 Browse.. 버튼을 눌러서 .ppk 파일을 추가해 줍니다.


그 후 다시 Session탭으로 돌아와 Save를 눌러서 접속 정보를 저장해 줍시다.

(다음부터는 이 과정을 건너뛰고 저장된 세션으로 바로 접속 가능합니다)


Open을 눌러 서버에 접속합니다.





EC2 서버로 접속이 되었습니다

'프로그래밍 > AWS' 카테고리의 다른 글

AWS의 MySQL에 HeidiSQL로 접속하기  (0) 2018.06.29
AWS에 MySQL 설치하기  (0) 2018.06.29
AWS ec2 Linux FileZilla로 접속하기  (0) 2018.06.29

크게 3가지 단계로 나뉩니다.


  • 먼저 도메인을 구입합니다. (가비아)
  • 톰캣에서 호스팅 설정을 해줍니다.
  • Nginx에서 호스팅 설정을 해줍니다.



webapps 에 배포할 war 파일을 넣어줍니다.




톰캣의 server.xml 파일에 다음과 같이 Host와 Context를 입력해 줍니다.


name에는 구입한 도메인을 입력해주세요

appbase 는 war파일이 있는 폴더의 위치입니다.

docBase에는 war파일명을 입력해주시면 되겠습니다.


여기까지 완료한후

service tomcat8 restart 를 하고

도메인주소:8080 으로 접속하면 접속이 잘 될겁니다.


이제는 뒤에 붙은 8080포트를 제거하기 위하여 

Nginx에도 Host 설정을 해볼까요


vi /etc/nginx/nginx.conf 의 설정에보면

다음과 같이 되어있습니다.


include /etc/nginx/default.d/*.conf;


default.d 폴더 안에 있는 모든 conf를 포함한다는 뜻인데요


임의의 conf를 만들어봅시다

이름은 custom.conf로 하겠습니다



아까 톰캣에서 적어준 name(도메인)을 적어줍니다

proxy_pass에는 도메인 뒤에 8080포트를 붙여줍니다.


작성이 완료된 custom.conf 파일을

/etc/nginx/conf.d의 경로에 넣어줍니다.


service nginx restart


nginx를 재시작시켜준 후


도메인으로 접속하면 8080포트가 생략된 url로 접속이 가능합니다!


이상 한 ip에서 여러개의 프로젝트를 돌릴때 

설정하는 방법이었습니다.

'프로그래밍 > 리눅스' 카테고리의 다른 글

리눅스 MySQL TimeZone 확실한 변경법  (0) 2018.09.04
Tomcat + Nginx 연동하기  (0) 2018.06.28

Tomcat + Nginx 연동하기

프로그래밍/리눅스 2018. 6. 28. 17:48 Posted by 상콩이

리눅스 커멘트 창에서


vi /etc/nginx/nginx.conf


a 를 입력하여 글쓰기 모드로 변환 후


location에 아래와 같이 적어줍니다


proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;






그 후에 톰캣과 nginx를 재실행 시켜줍니다.


service tomcat restart

service nginx restart