Docker 初体验

Docker概述:

  Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。Docker是供开发人员和系统管理员 使用容器构建,共享和运行应用程序的平台。使用容器来部署应用程序称为容器化。容器不是新的,但用于轻松部署应用程序的容器却是新的。容器化越来越受欢迎,因为容器是:

  • 灵活:即使最复杂的应用程序也可以容器化。
  • 轻量级:容器利用并共享主机内核,在系统资源方面比虚拟机更有效。
  • 可移植:您可以在本地构建,部署到云并在任何地方运行。
  • 松散耦合:容器是高度自给自足并封装的容器,使您可以在不破坏其他容器的情况下更换或升级它们。
  • 可扩展:您可以在数据中心内增加并自动分发容器副本。
  • 安全:容器将积极的约束和隔离应用于流程,而无需用户方面的任何配置。

Docker应用场景:

  1. 有助于Microservices的落地和部署
  2. 充分利用物理机资源,同时能够整合服务器资源
  3. 提高开发效率,测试效率,部署效率,有利于DevOps的落地,CICD
  4. 云原生落地,应用更好地迁移
  5. ...

Image Container 的关系:

  Container images become containers at runtime and in the case of Docker。containers- images become containers when they run on Docker Engine.

  其实说白了可以将Image当成一个Java类,而container 是new出来的 一个个实例对象。

容器和虚拟机:

  容器在Linux上本地运行,并与其他容器共享主机的内核。它运行一个离散进程,不占用任何其他可执行文件更多的内存,从而使其轻巧。相比之下,虚拟机(VM)运行成熟的“guest”操作系统,并通过虚拟机管理程序对主机资源进行虚拟访问。通常,VM会产生大量开销,超出了应用程序逻辑所消耗的开销。它两的区别如下:

环境准备:

  我这里是采用的 VMware 的方式来安装Docker,也可以采用 vagrant+virtual box 的方式搭建虚拟机。我的环境是Centos7 的虚拟机环境。

  若使用vagrant+virtual box 的方式搭建虚拟机,基本操作如下:

下载安装 vagrant :

01 访问Vagrant官网
    https://www.vagrantup.com/
02 点击Download
    Windows,MacOS,Linux等
03 选择对应的版本
04 傻瓜式安装
05 命令行输入vagrant,测试是否安装成功

下载安装 virtual box:

01 访问VirtualBox官网
    https://www.virtualbox.org/
02 选择左侧的“Downloads”
03 选择对应的操作系统版本
04 傻瓜式安装
05 [win10中若出现]安装virtualbox快完成时立即回滚,并提示安装出现严重错误
 (1)打开服务
 (2)找到Device Install Service和Device Setup Manager,然后启动
 (3)再次尝试安装

安装 centos7:

01 创建first-docker-centos7文件夹,并进入其中[目录路径不要有中文字符]
02 在此目录下打开cmd,运行vagrant init centos/7
  此时会在当前目录下生成Vagrantfile
03 运行vagrant up[注意不要运行,拉取远端的centos7太慢]
  此时会找centos7的镜像,本地有就用本地的,本地没有就会拉取远端的
04 准备centos7的box (1)选中命令行中提示的链接   比如 https://vagrantcloud.com/centos/boxes/7/versions/1905.1/providers/virtualbox.box  (2)复制到迅雷中下载  (3)vagrant box add centos/7 D:\迅雷下载\virtualbox.box  (4)vagrant box list 查看本地的box[这时候可以看到centos/7] 05 根据本地的centos7 box创建虚拟机   vagrant up[打开virtual box,可以发现centos7创建成功] 06 vagrant基本操作 (1)vagrant ssh    进入刚才创建的centos7中  (2)vagrant status  查看centos7的状态  (3)vagrant halt  停止centos7  (4)vagrant destroy  删除centos7  (5)vagrant status  查看当前vagrant创建的虚拟机  (6)Vagrantfile中也可以写脚本命令,使得centos7更加丰富  但是要注意,修改了Vagrantfile,要想使正常运行的centos7生效,必须使用vagrant reload

  至此,使用vagrant+virtualbox搭建centos7完成,后面可以修改Vagrantfile对虚拟机进行相应配置  若想通过Xshell连接:

01 查看centos7相关信息
    vagrant ssh-config
    关注:Hostname Port IdentityFile
02 Xshell连接
    IP:127.0.0.1
    port:2222
    用户名:vagrant
    密码:vagrant
    文件:Identityfile指向的路径
03 使用root账户登录
    sudo -i
    vi /etc/ssh/sshd_config
    修改PasswordAuthentication yes
    passwd修改密码
    systemctl restart sshd
    root vagrant 登录

Docker 安装:

1.首先我们先卸载原来的Docker安装环境,yum list installed | grep docker 列出安装过的包, sudo yum -y remove docker-engine.x86_64  删除对应的安装。rm -rf /var/lib/docker 删除所有镜像容器等。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

 运行成功的界面如下:

2.安装Docker环境所需的相关依赖

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

3.设置docker仓库 [设置阿里云镜像仓库]。

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

  上面这个Docker仓库出现问题则使用阿里云的:sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  address:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,设置阿里云镜像加入器.登录阿里云控制台,找到镜像加速器,执行对应命令:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://1m38pnqb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

  更新yum缓存:sudo yum makecache fast

4.安装Docker:

sudo yum install docker-ce docker-ce-cli containerd.io

  如果需要指定版本则:yum install -y docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io   

  安装完Docker后会创建一个本地网卡:

5.启动docker并且设置为开机启动:

sudo systemctl start docker && sudo systemctl enable docker

6.测试是否安装成功:成功则答应出相关的信息

sudo docker run hello-world

  查看docker版本信息:

docker version

docker pull在哪拉取的镜像?:hub.docker.com

  默认是最新的版本,可以在后面指定版本":" 。比如拉去centos  7.6.1810版本:

  Docker常用的基本命令:

docker pull    拉取镜像到本地
docker images 查看当前的镜像信息
docker rmi -f 删除对应镜像 docker run 参数 images    根据某个镜像创建容器
-d         让容器在后台运行,其实就是一个进程 --name       给容器指定一个名字 -p         将容器的端口映射到宿主机的端口 docker exec -it  进入到某个容器中并交互式运行
docker ps 查看当前运行的容器 -a可以查看退出的容器
docker restart d5476b626a01 重启容器
docker stop  quizzical_almeida 停止某个容器
docker logs 查看容器日志
exit 退出容器
docker rm $(docker ps -aq) 删除所有容器

Docker 安装 Tomcat:

1.拉取镜像 docker pull tomcat

2. 查看镜像 docker images

3.创建一个名字叫 tomcat-wuzz 的tomcat容器,且后台运行 将其默认端口8080 映射到centos系统的 9991 端口上。

4.查看容器  docker ps

5.进入tomcat容器 docker exec -it tomcat-wuzz /bin/bash 。

6.查看内容 ls 可以看到跟我们传统的方式目录下内容是一致的。

7.进入bin目录并且启动tomcat:

8.在物理主机这边访问:http://192.168.1.101:9991/ ,我这边的虚拟机IP地址是192.168.1.101.能成功访问。

 Docker 其他常见的容器安装可以参考 https://www.runoob.com/docker/docker-tutorial.html

posted @ 2019-10-31 17:18  吴振照  阅读(417)  评论(0编辑  收藏  举报