liujiusheng / blog

个人博客,blog
19 stars 0 forks source link

关于Ubuntu Server版本Docker的离线安装 #167

Open liujiusheng opened 4 years ago

liujiusheng commented 4 years ago

Ubuntu最大的问题是默认不能用root登录,导致很多地方权限不够,造成学习的时候不方便。所以先改这个问题吧。

启用权限

以个人账号登录后切换到管理员账号:sudo su root 编辑:vim /etc/ssh/sshd_config port 22前的#号去掉

PermitRootLogin prohibit-password改为PermitRootLogin yes

保存后service sshd restart重启sshd

为root账户设置密码

passwd root

ip addr查看ip地址就可以用shell连接了

开始离线安装Docker

查看发行版本:cat /etc/lsb-release 我当前的版本为: 所以到这个链接下载软件包:https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/ 要注意的是至少需要下载docker-ce-cli_19.03.8~3-0~ubuntu-bionic_amd64.deb 、containerd.io_1.2.6-3_amd64.deb 、docker-ce_19.03.8~3-0~ubuntu-bionic_amd64.deb 三个软件包,并依次安装。

安装完成后就可以输入docker命令检查是否安装成功。

开始使用Docker

执行 docker pull nginx从网上下载nginx的镜像。

完成后可通过docker images查看本地已经有的镜像。

关闭ubuntu防火墙:sudo ufw disable

新建/root/html文件夹,并将html代码放进去,后续启动容器之后会映射这个目录内容到nginx镜像里去(经验证,无论是容器启动前放入宿主机/root/html的文件还是容器启动后再放入/root/html的文件都能被使用到,所以在实际使用过程中代码是可以随时替换的。而且/root/html文件夹也不一定要提前创建好,如果没有提前创建它会自己创建,容器销毁后也不会删除这个目录。/root/html目录的指定必须要是绝对路径不能是相对路径)。

以只读模式在80端口启动一个叫some-nginx的容器,映射宿主机/root/html为放置代码的目录,映射宿主机/root/log为nginx产生的日志放置目录,执行: docker run --name some-nginx -v /root/html:/usr/share/nginx/html:ro -v /root/log:/var/log/nginx -d -p 80:80 nginx (/root/html是宿主机路径,/usr/share/nginx/html是docker中的路径,从代码目录和日志目录可以看出,这种共享目录的方式容器内外共用的实际是同一个文件,所以能随时读入也能随时写出)

通过浏览器访问:http://host-ip/index.html即可访问到内容。

删除镜像删除容器

查看正在运行的容器:docker ps 查看所有的容器:docker ps -all 可以找到容器的id。 查看镜像的Id:docker images,可以找到镜像的id

停止容器:docker stop 容器id 删除容器:docker rm 容器Id 删除镜像:docker rmi 镜像Id

参考: https://blog.csdn.net/dantesite/article/details/86157787