- 제 1차 산업 혁명: 증기기관 기반의 '기계화 혁명' - 제 2차 산업 혁명: 전기 에너지 기반의 '대량 생산 혁명' - 제 3차 산업 혁명: 컴퓨터와 인터넷 기반의 '정보화 혁명' - 제 4차 산업 혁명: 사물인터넷(IoT), 빅데이터, 인공지능(AI) 기반의 '만물 초지능 혁명'
4차 산업 혁명의 의미
- 인공지능, 데이터, 네트워크가 결합하여 인간의 지적 능력을 구현하기 시작함
ICBM (IoT / Cloud / Big Data / Mobile)
- 4차 산업 혁명이라는 새로운 환경에 원천이 되는 대표적인 정보통신 기술
1) 사물인터넷 (IoT)
- 각종 사물에 컴퓨터 칩과 통신 기능을 내장하여 인터넷에 연결하는 기술 - 적용 예시: 에어컨, 밥솥, 공기청정기, 도어락 등
2) 클라우드 (Cloud)
- 정보처리, 저장, 관리, 유통, 분석 등의 작업을 제 3의 공간에서 수행하는 컴퓨팅 시스템 - 인터넷 접속이 가능한 단말기 등을 통해 언제 어디서나 데이터를 불러와 작업하는 사용자 환경 - 클라우드 서비스 vs 웹 하드 서비스 개념 차이
클라우드
웹 하드
인터넷 상에서 실시간으로 데이터 수정 가능
- 네트워크를 통해 데이터를 백업하는 용도, - 데이터 수정 시 데이터 업로드 및 다운로드 작업 필요
- 클라우드 서비스 유형
IaaS (Infrastructure as a Service)
물리적인 하드웨어 인프라를 서비스 형태로 제공받는 클라우드 서비스
PaaS (Platform as a Service)
미들웨어를 서비스 형태로 제공받는 클라우드 서비스 * 미들웨어: 웹 서비스, 데이터베이스 서비스, 라이브러리/프레임워크 등
SaaS (Software as a Service)
End User가 바로 사용 가능한 완성형 소프트웨어를 별도의 설치 없이 서비스 형태로 제공받는 클라우드 서비스, 웹 브라우저에서 실행 * 적용 서비스 예시: MS Office 365, Google docs 등
3) 빅데이터(Big data)
- 많은 양의 데이터에서 빠르게 정보를 추출 및 분석하여 가치있는 정보를 발견하는 기술 - 초기에는 데이터의 규모를 의미했음 - 빅데이터 기술은 사람들이 평상 시에 쓰는 말이나 글을 컴퓨터가 이해, 정보화하는 것으로부터 시작됨 - 데이터의 규모, 속도, 다양성이라는 세 가지 속성을 가짐 -> 3Vs - 빅데이터 분석 기술
텍스트 마이닝: 최근 소셜 미디어 등 비정형 데이터의 증가,
비정형 또는 반정형 텍스트 데이터에서 자연 언어 처리 기술에 기반
오피니언 마이닝(또는 평판 분석)
군집 분석
하둡
NoSQL
4) 모바일(Mobile)
- 스마트폰과 태블릿 PC 등과 같이 이동 중 사용이 가능한 컴퓨터 환경
5) 인공지능
- 머신 러닝
과거의 데이터를 기반으로 미지의 데이터에 대한 예측을 하는 기술
기존의 데이터에 포함된 특징을 학습하여 아직 접하지 않은 미지의 데이터에도 적합한 일반적인 구조를 발견하기 위한 기술
- 머신 러닝의 학습 방법
지도 학습
비지도 학습
강화 학습
- 딥러닝
심층 신경망을 사용하는 머신러닝의 한 분야
특정 영역에서 높은 예측 성능을 발휘하는 머신러닝 방법 중 하나
- 인공지능
인간의 뇌 구조를 컴퓨터에서 재연하거나 논리적인 추론 처리를 컴퓨터로 구현하는 것을 목적으로 함
hjk@hjk-VirtualBox:~$ sudo docker image pull -a centos
# 다운로드한 이미지 확인
hjk@hjk-VirtualBox:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 9873176a8ff5 3 days ago 72.7MB
nginx latest d1a364dc548d 3 weeks ago 133MB
centos 7 8652b9f0cb4c 7 months ago 204MB
centos 6.6 368c96d786ae 2 years ago 203MB
centos 6.7 9f1de3c6ad53 2 years ago 191MB
centos 6.8 82f3b5f3c58f 2 years ago 195MB
centos 6.9 2199b8eb8390 2 years ago 195MB
centos 6.10 48650444e419 2 years ago 194MB
centos 7.0.1406 cc2cf48cc784 2 years ago 210MB
centos 7.1.1503 e1430271e2f9 2 years ago 212MB
centos 7.2.1511 9aec5c5fe4ba 2 years ago 195MB
centos 7.3.1611 c5d48e81b986 2 years ago 192MB
centos 7.4.1708 9f266d35e02c 2 years ago 197MB
centos 7.5.1804 cf49811e3cdb 2 years ago 200MB
centos 6 d0957ffdf8a2 2 years ago 194MB
centos 5.11 b424fba01172 4 years ago 284MB
centos 5 1ae98b2c895d 4 years ago 285MB
# 2. 이미지 목록 표시
docker image ls[옵션][리포지토리명]
옵션
설명
-all, -a
모든이미지표시
--digests
* 다이제스트표시여부
--no-trunc
결과모두표시
--quiet, -q
docker 이미지 ID만표시
다이제스트: Docker 레지스트리에 업로드한 이미지는 이미지를 고유하게 식별하기 위해 다이제스트가 부여됨
hjk@hjk-VirtualBox:~$ sudo docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 9873176a8ff5 3 days ago 72.7MB
nginx latest d1a364dc548d 3 weeks ago 133MB
centos 7 8652b9f0cb4c 7 months ago 204MB
hjk@hjk-VirtualBox:~$ sudo docker image ls --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
ubuntu latest sha256:aba80b77e27148d99c034a987e7da3a287ed455390352663418c0f2ed40417fe 9873176a8ff5 3 days ago 72.7MB
nginx latest sha256:6d75c99af15565a301e48297fa2d121e15d80ad526f8369c526324f0f7ccb750 d1a364dc548d 3 weeks ago 133MB
centos 7 sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e 8652b9f0cb4c 7 months ago 204MB
hjk@hjk-VirtualBox:~$ sudo docker image ls --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest sha256:9873176a8ff5ac192ce4d7df8a403787558b9f3981a4c4d74afb3edceeda451c 3 days ago 72.7MB
nginx latest sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdee 3 weeks ago 133MB
centos 7 sha256:8652b9f0cb4c0599575e5a003f5906876e10c1ceb2ab9fe1786712dac14a50cf 7 months ago 204MB
hjk@hjk-VirtualBox:~$ sudo docker image ls -q
9873176a8ff5
d1a364dc548d
8652b9f0cb4c
hjk@hjk-VirtualBox:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 9873176a8ff5 3 days ago 72.7MB
nginx latest d1a364dc548d 3 weeks ago 133MB
centos 7 8652b9f0cb4c 7 months ago 204MB
항목
설명
REPOSITORY
이미지이름
TAG
이미지태그명
IMAGE ID
이미지 ID
CREATED
작성일
SIZE
이미지크기
hjk@hjk-VirtualBox:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 9873176a8ff5 3 days ago 72.7MB
nginx latest d1a364dc548d 3 weeks ago 133MB
centos 7 8652b9f0cb4c 7 months ago 204MB
일반적으로 소프트웨어가 상업용 인 경우이를 "개인 및 신뢰할 수있는"레지스트리로 호스팅하게됩니다.
# 리포지토리 (Repository)
관련 이미지 모음 (일반적으로 동일한 애플리케이션 또는 서비스의 서로 다른 버전 제공).
"태그가 지정된"이미지 세트입니다.
예를 들어 5 개의 ubuntu:latest이미지에 태그를 지정할 수 있습니다.
hjk@hjk-VirtualBox:~$ sudo docker image ls --digests asashiho/dockersample
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
asashiho/dockersample latest sha256:214fb190b7f3e69ed44c908869cb2b86c2dc5a450128e045e2090bb6f0af9a50 6d041c204453 2 years ago 319MB
hjk@hjk-VirtualBox:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest d1a364dc548d 3 weeks ago 133MB
hjk@hjk-VirtualBox:~$ sudo docker image tag nginx asashiho/webserver:1.0
# 확인 사항 : 태그를 붙인 이미지(asashiho/webserver:1.0)와 원래의 이미지(nginx)의 “IMAGE ID”가 동일함
hjk@hjk-VirtualBox:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
asashiho/webserver 1.0 d1a364dc548d 3 weeks ago 133MB
nginx latest d1a364dc548d 3 weeks ago 133MB
# 5. 이미지 검색
docker search [옵션] <검색 키워드>
옵션
설명
--no-trunc
결과를모두표시
--limit
n건의검색결과표시
--filter=stars=n
즐겨찾기의수(n 이상)를지정정
# Docker Hub에 공개되어 있는 이미지 검색
hjk@hjk-VirtualBox:~$ sudo docker search nginx
[sudo] hjk의 암호:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 15057 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 2039 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 814 [OK]
항목
설명
NAME
이미지이름
DESCRIPTION
이미지설명
STARS
즐겨찾기수
OFFICIAL
공식이미지
AUTOMATED
Dockerfile을바탕으로자동생성된이미지
# 인기있는 이미지 검색
hjk@hjk-VirtualBox:~$ sudo docker search --filter=stars=1000 nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 15057 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 2039 [OK]
Docker Hub에 공개되어 있는 이미지가 모두 안전하다고 볼 수 없기 때문에 Docker 이미지를 이용할 때는 공식 이미지 또는 Dockerfile이 제대로 공개되어 있는 것을 선택하여 확인 후 사용할 것
# 6. 이미지 삭제
docker image rm[옵션]이미지명[이미지명]
옵션
설명
--force, -f
이미지를강제로삭제
--no-prune
중간이미지를삭제하지않음
docker image prune [옵션]
옵션
설명
--force, -f
이미지를강제로삭제
--all, -a
사용하지않은이미지를모두삭제
# 이미지 삭제
hjk@hjk-VirtualBox:~$ sudo docker image rm nginx
Error response from daemon: conflict: unable to remove repository reference "nginx" (must force) - container 3e64d7145e5a is using its referenced image d1a364dc548d
hjk@hjk-VirtualBox:~$ sudo docker image rm -f nginx
Untagged: nginx:latest
Untagged: nginx@sha256:6d75c99af15565a301e48297fa2d121e15d80ad526f8369c526324f0f7ccb750
Deleted: sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdee
# 7. Docker Hub에 로그인
docker login [옵션] [서버]
옵션
설명
--password, -p
비밀번호
--username, -u
사용자명
로그인에 성공하면 ‘Login Succeded’라는 메시지가 표시됨
서버명을 지정하지 않을 경우 Docker Hub에 액세스 됨
다른 환경에 Docker 리포지토리가 있는 경우 서버명을 지정하여 사용
# Docker Hub에 로그인
hjk@hjk-VirtualBox:~$ sudo docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: [Docker Hub ID]
Password: [Docker Hub PW]
WARNING! Your password will be stored unencrypted in /home/hjk/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
# -p 옵션은 비밀번호가 표시되기 때문에 보안상 권장하지 않음
hjk@hjk-VirtualBox:~$ sudo docker login -u [Docker Hub ID] -p [Docker Hub PW]
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/hjk/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
# 8. 이미지 업로드
docker image push 이미지명 [:태그명]
<Docker Hub 사용자명>/이미지명:[태그명]
hjk@hjk-VirtualBox:~$ sudo docker image tag nginx khj708/webserver:1.0
hjk@hjk-VirtualBox:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
khj708/webserver 1.0 4f380adfc10f 19 hours ago 133MB
nginx latest 4f380adfc10f 19 hours ago 133MB
ubuntu latest 9873176a8ff5 6 days ago 72.7MB
centos 7 8652b9f0cb4c 7 months ago 204MB
hjk@hjk-VirtualBox:~$ sudo docker push khj708/webserver:1.0
The push refers to repository [docker.io/khj708/webserver]
c6d74dcb7fe7: Mounted from library/nginx
b50a193ebf2e: Mounted from library/nginx
165eb6c3c0d3: Mounted from library/nginx
cf388fcf3527: Mounted from library/nginx
2418679ca01f: Mounted from library/nginx
764055ebc9a7: Mounted from library/nginx
1.0: digest: sha256:2f1cd90e00fe2c991e18272bb35d6a8258eeb27785d121aa4cc1ae4235167cfd size: 1570
# 업로드 완료 후 Docker Hub에 새로운 이미지가 등록된 것을 확인할 수 있음
# 9. Docker Hub에서 로그아웃
hjk@hjk-VirtualBox:~$ sudo docker logout
Removing login credentials for https://index.docker.io/v1/
hjk@hjk-VirtualBox:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 9873176a8ff5 3 days ago 72.7MB
nginx latest d1a364dc548d 3 weeks ago 133MB