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  

你可能感兴趣的:(容器,云计算,运维)