1. Tạo 1 image từ 1 container
-- Tạo 1 container tên cent từ image centos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
docker pull centos:centos7 docker run -it --name cent centos:centos7 # yum update -y # yum install httpd httpd-tools -y # yum install vim -y # yum install epel-release -y # yum update -y # yum install htop -y // Kiểm tra xem đã cài hoàn thành httpd, vim và htop chưa # httpd -v # vi # htop // Ctrl + P + Q để ra khỏi container docker cp C:\Docker\mycode\myimage\test.html cent:/var/www/html/ docker attach cent # cd /var/www/html # ls # exit |
-- Commit container cent thành image có tên myimage:v1
1 2 3 4 |
docker commit cent myimage:v1 docker images // Tạo luôn 1 container chạy máy chủ httpd và chạy nền docker run --rm -p 9876:80 myimage:v1 httpd -D FOREGROUND |
2. Tạo image từ Dockerfile
-- Tạo file
1 2 3 4 5 |
cd C:\Docker\mycode\myimage // Tạo Dockerfile trên PowerShell New-Item Dockerfile // Tạo Dockerfile trên Linux touch Dockerfile |
-- Chỉnh sửa Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
FROM centos:centos7 RUN yum update -y RUN yum install httpd httpd-tools -y RUN yum install vim -y RUN yum install epel-release -y RUN yum update -y RUN yum install htop -y # Thư mục làm việc mặc định WORKDIR /var/www/html # Image này hoạt động và lắng nghe trên cổng 80 EXPOSE 80 # Copy file test html vào thư mục var/www/html ADD ./test.html /var/www/html/ # Container được tạo mặc định sẽ chạy httpd với tham số -D FOREGROUND ENTRYPOINT [ "httpd" ] CMD [ "-D", "FOREGROUND" ] |
-- Tạo image từ Dockerfile
1 2 3 4 5 6 |
# -t: tên image, -f: tên file, .: thư mục hiện tại docker build -t myimage:v1 -f Dockerfile . # Kiểm tra lại image docker image history myimage:v1 # Tạo thử 1 container docker run -p 6789:80 myimage:v1 |
* Khác. Lưu 1 container thành 1 Images
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// Tạo 1 container dựa trên image: ubuntu:18.04 $ sudo docker run -it --name "TestUbuntu" ubuntu:18.04 // Khởi động bash trong ubuntu $ sudo docker exec -it TestUbuntu bash // Cài đặt htop root@testubuntu:/# apt update -y root@testubuntu:/# apt install htop root@testubuntu:/# htop // Cài đặt Ping, Vim root@testubuntu:/# apt install iputils-ping root@testubuntu:/# apt install vim // Container này đang cài đặt khá nhiều chương trình rồi -> cần lưu container này lại // Tạo 1 images my-ubuntu:version1 từ container TestUbuntu $ sudo docker commit TestUbuntu my-ubuntu:version1 // Kiểm tra lại các images của dọcker $ sudo docker images // Lưu image thành 1 file my-ubuntu.tar $ cd ~/Downloads $ sudo docker save --output my-ubuntu.tar e03f35874101 // Tạo image từ file tar $ sudo docker load -i my-ubuntu.tar // Đặt lại tên và version $ docker tag e03f35874101 my-ubuntu:version2 |