docker入门--安装和部署

      docker这个词听了很久,由于太懒,一直没有去了解。最近试着搞了一下,写一篇笔记,记录一下,大佬请绕行。(此处主要是根据菜鸟教程进行学习,其中实践出现问题之处,自己做了一些解决方式的记录。)

一、Centos安装docker

1. 使用命令安装docker
   

# curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
(此处使用的是阿里的docker下载地址)

2. 安装 Docker Engine-Community

# sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
# sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(此处是设置阿里仓库)
sudo yum install docker-ce docker-ce-cli containerd.io
docker -v
(查看一下版本,如果出现一行版本号则安装成功了)

3. 启动docker服务
    当信誓旦旦开始执行#sudo systemctl start docker的时候,可能就抛出一个报错:System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down(操作时只遇到这一种错误)

  • 解决方式:
        3.1、首先是需要检查这个问题是docker导致的还是systemctl导致的。
       用systemctl执行其他参数试一下,譬如systemctl status firewalld、systemctl start mysql、systemctl stop mysql、systemctl --version等等
        3.2、如果是systemctl命令导致的,那么可能是当前操作系统不支持该命令,也可能其他原因。
        进行尝试:
        (1)使用#sudo service start docker(或者可以百度一下自己的操作系统是否支持systemctl,以及当前系统需要用什么来进行操作服务)
        (2)在上面尝试无果后,发现docker -v以及systemctl --version都是可以执行的。反复百度后,最终…尝试了专治各种疑难杂症的“重启大法”。然后就ok了(ˉ▽ˉ)…
        (3)目前还未遇到其他问题,如果docker有问题,则卸载(卸载docker# yum remove docker-ce;删除其他镜像等文件:# rm -rf /var/lib/docker),重装再试一下。
    4. 第一个hello world
        开始执行#docker run hello-world
        4.1、首先报错:unable to find image 'hello-world:lastest' locally,如图:docker入门--安装和部署_第1张图片
        原因:错误很明确找不到这个镜像,那就是地址不对。需要配置国内的镜像,此处配置阿里的镜像地址
        解决方法:
    /etc/docker/daemon.json(默认是没有这个配置文件的,需要手动新建;默认docker路径是在这里,如果没有,则找一下路径,使用which 、find等命令)
    新建之后,在里面写入:
{ 
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] 
}

    保存文件,并且执行 systemctl restart docker(重启一下docker)。并且使用 systemctl status docker 查看目前docker运行的状态 ,看是否处于启动状态。如图:
docker入门--安装和部署_第2张图片
    4.2、继续执行docker run hello-world,报错(docker:Error response from daemon: cannot start a stopped process: unknow):

在这里插入图片描述
    原因:缺少插件
    安装依赖:yum install libseccomp-devel
    安装完成之后,继续执行 docker run hello-world,此时成功,如图:

docker入门--安装和部署_第3张图片

二、docker运行一个web

    1、可以先参考菜鸟教程的docker hello world、docker镜像使用敲一些命令,熟悉一下
    2、在最后docker运行web项目的时候,此处的映射端口是用的随机映射端口,在教程后面有进行说明操作。不过在此处随机映射的端口,服务器上就需要查看防火墙是否对该端口放行,如果使用阿里、腾讯等服务器就需要根据这个端口设置安全组等操作。所以此处,可以使用指定端口号的命令

docker run -d -p 80:5000 training/webapp python app.py

解释:
将docker内部的5000端口映射到外部80端口上
-P :是容器内部端口随机映射到主机的高端口。
-p : 是容器内部端口绑定到指定的主机端口。

三、docker的一些理解

1、docker类似于一个vmware虚拟机,在它里面可以安装各种镜像(操作系统),而与vm不同的是,docker有更加便捷的命令,以及创建容器的时候可以公用本地的镜像,操作更加灵活;
2、镜像仓库类似于java之中的maven,或者node之中的npm,是一个中央仓库
3、docker可以随意拉取镜像,也可以自己制作镜像(导入和导出),像打包一个jar、或者node包那样,能够是系统灵活的随意部署。
深入的一些知识还有待继续学习,一个比较不错的链接(该链接之中还引入了许多大佬写的k8s相关的东西): Docker1 架构原理及简单使用

你可能感兴趣的:(liunx服务器,笔记,java,web,docker,linux,centos,java,后端)