Env:
-
安裝與啟動
在安裝 Docker 前先更新一下 YUM Repository:
# yum -y update
更新 YUM Repository 後可以安裝 Docker 及其相關套件:
# yum -y install docker docker-registry
安裝好 Docker 後, 啟動 Docker 及設定 Docker 開機自動啟動:
# systemctl enable docker
# systemctl start docker
要檢查 Docker 是否正確啟動, 可用 status 選項:
# systemctl status docker.service
-
登入 Docker hub to push or commit images
# docker login
-
Show host IP
ip addr show docker0 | grep -Po 'inet \K[\d.]+'
-
Enable / Disable Hyper-V
-
Disable -> Docker’ll work and VirtualBox’ll fail.
bcdedit /set hypervisorlaunchtype off
-
Enable -> Docker’ll fail and VirtualBox’ll work.
bcdedit /set hypervisorlaunchtype auto
-
Ref: https://dotblogs.com.tw/d___s/2018/08/02/virtualboxruntimeerror
Build image:
-
Create a file with multiple lines content in Dockerfile
RUN echo $'[repo] \n\
name = YUM Repository \n\
baseurl = https://example.com/packages/ \n\
enabled = 1 \n\
gpgcheck = 0' > /etc/yum.repos.d/Repo.repoxyz
Build container:
-
Start and attach to container
docker start -ai {{container_id}}
#or start and docker exec
-
Build and expose port to container
-
docker run -d -p 8080:80 {image}
-
Build and go into container bash
docker run -t -i ubuntu:12.04 bash
-
Build, expose port and go into container bash
docker run -itd -p 8080:80 {image} bash
# -p host_port:container_port
About Image:
-
清除 <none> images
docker rmi $(docker images -f "dangling=true" -q)
-
更新 image
-
docker commit -m “Setup to Jupyter truly” -a “John” {containerId} {image}
-
Build image
docker build -t jj/image -f Dockerfilexxx .
-
Push to Repository
docker push {image}
-
Check the files permission in docker image
docker run –rm -ti –entrypoint sh {image} -c “ls -alF /usr/local/bin/”
About Container:
-
Remove dead container
-
Linux
sudo rm -rf /var/lib/docker/<storage_driver>/{CONTAINER ID}/
-
Windows
del D:\ProgramData\docker\containers\{CONTAINER ID}
del D:\ProgramData\docker\windowsfilter\{CONTAINER ID}
-
Check screen log output
docker logs -f <CONTAINER> --tail {lineNumber}
-
List all the containers
docker ps -aq
-
Stop all running containers
docker stop $(docker ps -aq)
-
Remove all containers
docker rm $(docker ps -aq)
-
Remove all images
docker rmi $(docker images -q)
-
Copy file from host to container
docker cp foo.txt mycontainer:/foo.txt
from container to host
docker cp mycontainer:/foo.txt foo.txt
-
進入 Running Container bash
docker exec -i -t <CONTAINER_ID> bash
docker exec -i -t <CONTAINER_ID> sh
-
進入 Stopped(Exited) container bash
docker images # Find the {imageId} of exited container
docker run -it --entrypoint=sh {imageId}
# not verify?
docker start -ai {CONTAINER_ID} bash
-
修改初始 command 並 start new container
docker run -ti –entrypoint=sh <IMAGE_NAME>