使用場景
爲了不污染宿主主機的環境 ,包含image and container,需要使用一個dind作爲docker server ,而其它的鏡像以它爲docker deamon
docker deamon :
參考官網
https://hub.docker.com/_/docker?tab=description
$ docker run --privileged --name some-docker -d \
--network some-network --network-alias docker \
-e DOCKER_TLS_CERTDIR=/certs \
-v some-docker-certs-ca:/certs/ca \
-v some-docker-certs-client:/certs/client \
docker:dind
其中最主要 的有 network , 最坑的是,這個實例docker 是可以當作 hosts name 來用。 並且不能用some-docker來當成 hosts name來用。
然後 volume : some-docker-certs-client也很重要,因爲客戶端 的docker實例要共享 使用它。
docker client:
docker run -itd --name cent5 --env DOCKER_HOST=tcp://docker:2376 --env DOCKER_CERT_PATH=/certs/client -v some-docker-certs-client:/certs/client:ro --network some-network --env DOCKER_TLS_VERIFY=1 centos:7
其中 --env DOCKER_TLS_VERIFY=1 非常重要,不然就會出現 :
[root@46db8429a2e1 /]# docker ps
Error response from daemon: Client sent an HTTP request to an HTTPS server.
實驗結果
(1) 按 docker client 命令,從一個基本的centos鏡像 做出一個實例
(2) yum install docker-client-latest 僅安裝 客戶端 。 因爲deamon 由--env DOCKER_HOST=tcp://docker:2376 來指定 了。
docker pull redis
(3) 在client 裏,我們看到
(3) daemon 裏
docker exec -it some-docker docker ps