Apa cara saat menginstal Docker pada instance AWS EC2 yang menjalankan AMI? Telah ada pengumuman Docker Enterprise Edition dan sekarang saya ingin tahu apakah ada yang berubah. Sampai sekarang, saya telah menggunakan yum install docker
dan mendapatkan versi Docker 1.12.6, build 7392c3b/1.12.6
sekarang (3/3/2017). Namun, repositori Docker di GitHub memberi tahu saya bahwa sudah ada rilis yang lebih baru.
Saya ingat repositori Docker (paket) resmi yang memiliki paket yang dinamai docker-engine
menggantikan docker
beberapa waktu lalu dan sekarang mereka sepertinya membagi paket menjadi docker-ce
dan docker-ee
, di mana mis. "Docker Community Edition (Docker CE) tidak didukung di Red Hat Enterprise Linux." [ Sumber ]
Jadi, apakah masih benar menggunakan di atas untuk mendapatkan versi Docker stabil terbaru pada instance EC2 yang menjalankan AMI atau apakah saya perlu menarik paket dari tempat lain (dan jika demikian yang mana, CE atau EE)?
Jawaban:
Untuk menjalankan Docker pada AWS AMI Anda harus mengikuti langkah-langkah di bawah ini (ini semua dengan asumsi Anda telah beralih ke instance EC2).
Perbarui paket pada contoh Anda
[ec2-user ~]$ sudo yum update -y
Instal Docker
[ec2-user ~]$ sudo yum install docker -y
Mulai Layanan Docker
[ec2-user ~]$ sudo service docker start
Tambahkan pengguna ec2 ke grup buruh pelabuhan sehingga Anda dapat menjalankan perintah Docker tanpa menggunakan sudo.
[ec2-user ~]$ sudo usermod -a -G docker ec2-user
Anda kemudian harus dapat menjalankan semua perintah buruh pelabuhan tanpa perlu
sudo
. Setelah menjalankan perintah ke-4, saya harus keluar dan masuk kembali agar perubahan diterapkan.sumber
Bagian tersulit untuk mengetahui semua ini adalah persyaratan wadah-selinux. Temukan saja versi terbaru di http://mirror.centos.org/centos/7/extras/x86_64/Packages/ dan instal terlebih dahulu. Selain itu instance EC2 mungkin tidak memiliki generator entropi yang tepat sehingga
haveged
mungkin perlu diinstal.Sisanya diambil dari https://docs.docker.com/install/linux/docker-ce/centos/ dengan tambahan hasged and firewalld. Semua ini harus dilakukan sebagai root dengan
sudo
tepat.Aktifkan SELinux dengan memodifikasi
/etc/sysconfig/selinux
menjadiKemudian reboot instans Anda dengan mengeluarkan
shutdown -r now
Eksekusi
sudo docker version
harus menghasilkan pada saat posting ini ...sumber
Per https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html
Anda dapat melihat riwayatnya di https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-versions.html
sumber
Selain jawaban saya sebelumnya. Jika Anda menggunakan Terraform, saya juga telah membuat modul Terraform yang dapat digunakan untuk membuat Docker Swarm
https://registry.terraform.io/modules/trajano/swarm-aws/docker
Perbedaan antara pendekatan yang telah saya lakukan sebelumnya vs pendekatan yang saya lakukan saat ini dengan modul terraform adalah dengan memanfaatkan paket Docker yang disediakan AWS. Ini tidak termasuk komposisi buruh pelabuhan penuh dan apa yang tidak, tetapi Anda tidak memerlukan paket-paket itu secara normal di server.
Karena saya menggunakan yang disediakan oleh Amazon, itu bukan lagi versi 18.09 terbaru tetapi versi 18.06. Namun, pengaturannya lebih sederhana dan saya tidak harus mengejar ketinggalan ke container-selinux.
Satu-satunya ketergantungan eksternal yang saya gunakan adalah EPEL untuk mendapatkan karena Anda masih memerlukan sumber acak yang baik untuk beberapa aplikasi.
Saya juga mengandalkan grup keamanan AWS daripada secara eksplisit mengatur firewalld dan menggunakan pengaturan SELinux yang default pada gambar AMI.
sumber