Amazon Linux 2에서 docker 사용하기 (Apache2.4)
7674 단어 EC2AmazonLinux2도커Apache2.4
개요
EC2 인스턴스를 시작하여 docker를 사용할 수 있도록 합니다.
인스턴스 시작
EC2 -> 인스턴스 -> 인스턴스 생성
※ Amazon Linux 2 AMI 선택
※ 보안 그룹은 80포트와 22포트를 해제한다.
(22포트는 불필요하지만 학습용이므로 간략화를 위해 설정)
서버에 연결
터미널을 사용하여 시작된 EC2 인스턴스에 연결합니다.
※ IAM 유저로 ssh 접속.
※ 계정은 다요소 인증(MFA)을 설정하여 이용하지 않는다.
터미널
$ ssh aws
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
Run "sudo yum update" to apply all updates.
우선, yum을 갱신해 둔다.
터미널
$ sudo yum update -y
Docker 설치
Amazon Linux Extras 리포지토리를 사용하여 설치합니다.
아래의 명령으로 설치할 수 있는 내용을 확인한다.
터미널
$ amazon-linux-extras list
...
20 docker available \
[ =17.12.1 =18.03.1 =18.06.1 ]
...
설치되는 내용을 확인해 본다.
터미널
$ amazon-linux-extras info docker
docker recommends docker # yum install docker
docker를 설치합니다.
터미널
# インストール (最新版を指定してみる)
$ sudo amazon-linux-extras install -y docker=18.06.1
# 起動
$ sudo service docker start
$ sudo systemctl enable docker.service
$ sudo service docker status
# バージョン確認
$ docker -v
Docker version 18.06.1-ce, build ...
# dockerグループに参加する
$ sudo usermod -a -G docker ec2-user
$ cat /etc/group | grep docker
docker:x:993:ec2-user
# 設定を反映するため、sshを再接続する
$ exit
$ ssh aws
Docker-Compose 설치
docker-compose도 설치합니다.
터미널
# 一時的にrootユーザーになって作業する
$ sudo -i
$ curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ exit
# 通常ユーザーに戻ってバージョン確認してみる
$ docker-compose --version
docker-compose version 1.11.2, build dfed245
컨테이너 시작
컨테이너를 기동해 동작 확인해 본다.
터미널
# Hello Worldを実行してみる
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
# ubuntuを起動してみる
$ docker run --rm -it ubuntu bash
root@***********:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
...
root@***********:/# exit
# イメージ確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 93fd78260bd1 3 weeks ago 86.2MB
hello-world latest 4ab4c602aa5e 3 months ago 1.84kB
# コンテナ確認
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26b515135561 hello-world "/hello" 4 minutes ago Exited (0) 3 minutes ago amazing_davinci
a89895358ad3 hello-world "/hello" 5 minutes ago Exited (0) 5 minutes ago kind_zhukovsky
d055b97abbfa hello-world "/hello" 5 minutes ag Exited (0) 5 minutes ago sleepy_northcutt
# 不要なコンテナ一括削除
$ docker rm `docker ps -f "status=exited" -q`
26b515135561
a89895358ad3
d055b97abbfa
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Apache2.4
웹 서버를 시작하고 80포트에서 액세스할 수 있도록 해 봅니다.
터미널
$ docker run -d --name httpd -p 80:80 httpd:2.4
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
************ httpd:2.4 "httpd-foreground" 3 seconds ago Up 2 seconds 80/tcp httpd
브라우저로 접속해 본다.
시작된 인스턴스의 "공용 DNS(IPv4)"에 설명된 IP 주소에 액세스합니다.
※ 이번 IP 주소: IPv4 퍼블릭 IP 13.113.85.220
후 정리(컨테이너 파기)
터미널
$ docker rm -f httpd
httpd
이상
요약
docker-compose
등으로 구성 관리하여 명령 한 번으로 시작하거나 Amazon Elastic Container Registry (ECR)
등에 앱 코드도 포함한 Dockerfile
적이 될 것 같지만, 여기에서 쓰면 읽기 어려워지므로 별도 기사화하고 싶습니다.참고 사이트
Reference
이 문제에 관하여(Amazon Linux 2에서 docker 사용하기 (Apache2.4)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/reflet/items/3b818fbfb14ba5c7ef47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)