Sử dụng docker – Ghi đè entrypoint mặc định của container với docker run

Entrypoint là những command mặc định, được chạy lần đầu khi khởi tạo container từ image. Entrypoint được định nghĩa ban đầu trong dockerfile. Tuy nhiên, đôi khi người quản trị muốn chạy cái gì đó khác bên trong container, vì vậy, có thể ghi đè ENTRYPOINT mặc định mỗi lần start container bởi tham số –entrypoint
Ví dụ,chạy ls khi start container
docker run --entrypoint "/bin/ls" 0cbf37812bff
Xoá toàn bộ container mặc định:
docker run -it –entrypoint=”” 0cbf37812bff
Tham số –entrypoint sẽ xoá toàn bộ entrypoint hiện có, và thêm entrypoint mới. Như ở lệnh trên, entrypoint mới rỗng nên những cái hiện có sẽ bị remove toàn bộ.

Tuy nhiên, nếu command có tham số (args) thì cú pháp sử dụng sẽ khác. Dưới đây là cách sử dụng sai:
[root@localhost ~]# docker run --entrypoint "/bin/ls -al /root" 0cbf37812bff

container_linux.go:247: starting container process caused "exec: \"/bin/ls -al /root\": stat /bin/ls -al /root: no such file or directory"
/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/bin/ls -al /root\": stat /bin/ls -al /root: no such file or directory".

Để sử dụng tham số cho entrypoint, thêm tham số đằng sau image_id/ image_name
Ví dụ, chạy lệnh ls với thư mục /var
[root@localhost ~]# docker run --entrypoint "/bin/ls" 0cbf37812bff /var
cache
db
empty
games
lib
local
lock
log
mail
nis
opt
preserve
run
spool
tmp
yp
[root@localhost ~]#

Xử lý lỗi docker – WARNING: IPv4 forwarding is disabled. Networking will not work.


Tạo container docker thì được thông báo:

WARNING: IPv4 forwarding is disabled. Networking will not work.

Nguyên nhân do hệ điều hành host đangtawts IP forwarding, để bật lên, thêm/sửa dòng sau trong /etc/sysctl.conf
net.ipv4.ip_forward=1

Sau đó restart network, hoặc chạy lệnh
sysctl -p

Sử dụng docker – Tạo một container


Để có contaner, trước hết cần có image, tương tự như cài windows thì phải có đĩa vậy. Image của docker có thể được lấy tự động từ docker hub (mặc định) hoặc từ docker registry nội bộ của doanh nghiệp. Để lấy docker image về, sử dụng cú pháp:
docker pull
Ví dụ: Muốn lấy image của centos 6 về máy:
docker pull centos:6
List các image trên máy:
docker images
Output:
[root@localhost data]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos 6 0cbf37812bff 3 months ago 194 MB
docker.io/centos/systemd latest 78c36a71df7e 6 months ago 200 MB

Cú pháp:
docker run

Ví dụ: tạo container từ image centos 6 ở trên
docker run -it 0cbf37812bff
Nếu thành công sẽ truy cập vào màn hình bên trong container, tiếp theo có thể tiến hành cài app như 1 máy bình thường. Để quay lại màn hình máy bên ngoài (màn hình máy host), bấm Ctrl P và Ctrl Q
Các tham số option khi tạo container sẽ được giới thiệu ở bài sau.