docker學習筆記--20200131

docker 命令梳理

docker image 
			  search
			  pull
			  ls
			  inspect
			  rm
			  save
			  load

docker container  
				  run    (-t -i -d)
				  start
				  stop
				  restart
				  kill
				  attach
				  exec
				  ls 	 (-a -q)
				  top
				  logs
				  inspect


run :

-i : 進入交互模式
-t : 啓動tty
-d : 後臺啓動

# docker run -itd --name=sshd_image_02 --privileged=true ssh/centos8 /sbin/init


進入容器:
# docker exec -it [容器名稱/id] /bin/bash


製作私有image

# docker commit -m 'add passwd,passwd root,systemctl sshd' -a 'add' 315f5aedfbe5 ssh/centos8

-m: 提交的描述信息

-a: 指定鏡像作者

315f5aedfbe5 : 容器ID

ssh/centos8: 指定要創建的目標鏡像名


docker 啓動官方image centos8時,如果run 時的命令是/bin/bash 時,在使用systemctl命令時,會報錯:
“
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
”

由於啓動進程不是init,導致報錯,需要在啓動contianer時,使用類似命令:

“
據說在 Linux Docker中無法使用 systemd(systemctl) 相關命令的原因是 1號進程不是 init ,而是其他例如 /bin/bash ,所以導致缺少相關文件無法運行。(System has not been booted with systemd as init system (PID 1). Can't operat)

解決方案:/sbin/init

例如:Ubuntu 18.04 ,

docker run -tid --name test --privileged=true ubuntu:18.04 /sbin/init
docker exec -it test /bin/bash

PS:--privilaged=true一定要加上的。

點贊 2
————————————————
版權聲明:本文爲CSDN博主「一統雲起」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u013829518/article/details/99681154
”

關於 選項 --privilaged=true,

大約在0.6版,privileged被引入docker。
使用該參數,container內的root擁有真正的root權限。
否則,container內的root只是外部的一個普通用戶權限。
privileged啓動的容器,可以看到很多host上的設備,並且可以執行mount。
甚至允許你在docker容器中啓動docker容器。

https://blog.csdn.net/RonnyJiang/article/details/70739023


官方centos 8 image ,默認命令很少,都需要自行安裝,比如sshd,passwd


製作一個自帶 sshd 的 私有鏡像,需要在官方鏡像中,安裝sshd、passwd軟件,設置sshd 開啓自啓,設置root密碼

 yum -y install openssh-server
 systemctl enable sshd
 yum -y install passwd
 echo "Jfz955988" | passwd --stdin root

容器外:

[root@ecs-21d5 data]# docker commit -m 'add passwd,passwd root,systemctl sshd' -a 'add' 315f5aedfbe5 ssh/centos8
sha256:90907da4c217f4529ff62114fe97cb814aa63edd769b170ebe61ab0877105667
[root@ecs-21d5 data]# docker image ls
REPOSITORY                                                                    TAG                 IMAGE ID            CREATED             SIZE
ssh/centos8                                                                   latest              90907da4c217        5 seconds ago       300MB


使用該私有鏡像啓動容器

[root@ecs-21d5 data]# docker run -itd --name=sshd_image_02 --privileged=true ssh/centos8 /sbin/init                 
fbf986a7f33c9d1275713b7bacd2b0e340eb9a4c5445e027559d9c6328ee4f21
[root@ecs-21d5 data]# docker inspect sshd_image_02 | grep IPA   
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.7",
                    "IPAMConfig": null,
                    "IPAddress": "172.17.0.7",
[root@ecs-21d5 data]# ssh 172.17.0.7
The authenticity of host '172.17.0.7 (172.17.0.7)' can't be established.
ECDSA key fingerprint is SHA256:TH4KtgMv3geNorL5O08X5TdeVveNEXVi2Kwlsv7QknA.
ECDSA key fingerprint is MD5:da:82:08:18:43:8b:1d:eb:2d:5d:36:21:e8:9c:49:c7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.0.7' (ECDSA) to the list of known hosts.
[email protected]'s password: 
Last login: Fri Jan 31 10:36:53 2020 from 172.17.0.1
[root@fbf986a7f33c ~]# history  
發佈了108 篇原創文章 · 獲贊 55 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章