Docker帮助你快速完成服务器搭建及项目部署

361次阅读
没有评论

共计 3490 个字符,预计需要花费 9 分钟才能阅读完成。

背景

最近在腾讯云入了3年的云服务器,尝试着自己建立一个博客网站,云服务器的配置如下:

# 配置信息
root@VM-0-7-debian:~# cat /proc/cpuinfo | grep name | cut -f2 -d:
 Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
# cpu核心数
root@VM-0-7-debian:~# cat /proc/cpuinfo | grep "cpu cores" | cut -f2 -d:
 1

选择Debian作为服务器系统,由于底层非常稳定,内核和内存的占用都非常小,在小内存的云服务器上可以流畅运行,因此像我这种购买的1C2G小内存云服务器,首选Debian。

  • 我在实际操作过程中也发现:Centos初始占用内存20%-22%,Debian初始占用内存9%-11%,高下立判。

见:Debian国内镜像源

Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言开发。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。


Docker应用场景:

  • Web 应用的自动化打包和发布
  • 自动化测试和持续集成、发布
  • 在服务型环境中部署和调整数据库或其他的后台应用

Docker帮助你快速完成服务器搭建及项目部署

# 清除以前的版本(如果有)
apt-get -y remove docker docker-engine docker.io
# 更新源,并安装https的支持
apt-get update
apt-get install -y apt-transport-https ca-certificates wget software-properties-common
# 将官方Docker存储库的GPG密钥添加到您的系统
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
# 将Docker存储库添加到APT源
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
# 更新并确保从Docker repo安装
apt update
apt-cache policy docker-ce
# 安装docker-ce
apt install docker-ce
# 检查docker状态
systemctl status docker
# 查看docker版本 
docker -v
mkdir /etc/docker
vim /etc/docker/daemon.json

# 阿里云镜像
{
  "registry-mirrors": ["https://w5jpjsyt.mirror.aliyuncs.com"]
}

# ustc镜像
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
# 启动docker服务:
systemctl start docker
# 停止docker服务:
systemctl stop docker
# 重启docker服务:
systemctl restart docker
# 查看docker服务状态:
systemctl status docker
# 设置开机启动docker服务:
systemctl enable docker
# 查看镜像可以使用如下命令: 
docker images
  • REPOSITORY:镜像名称
  • TAG:镜像标签
  • IMAGE ID:镜像ID
  • CREATED:镜像的创建日期
  • SIZE:镜像大小
# 如果你需要从网络中查找需要的镜像,可以通过以下命令搜索 
docker search 镜像名称
  • NAME:镜像名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反应一个镜像的受欢迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建
# 拉取镜像就是从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本 命令如下:
docker pull 镜像名称
# 如拉取tomcat最新版本;
docker pull tomcat:latest
# 按照镜像id删除镜像,命令如下:
docker rmi 镜像id
  • 1、 docker rmi $IMAGE_ID:删除指定镜像
  • 2、 docker rmi docker images -q:删除所有镜像
# 查看正在运行的容器使用命令:
docker ps
# 查看所有容器使用命令:
docker ps -a
# 基于已有的镜像来创建和启动容器,创建与启动容器使用命令:
docker run
  • -i:表示运行容器
  • -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
  • –name :为创建的容器命名。
  • -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件
    映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
  • -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t
    两个参数,创建后就会自动进去容器)。
  • -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

创建交互式容器

以交互式方式创建并启动容器,启动完成后,直接进入当前容器,使用exit命令退出容器。

  1. Tips:此种方式启动容器,如果退出容器,则容器会进入停止状态。
    # 先拉取一个镜像
    docker pull centos:7
    # 创建并启动名称为 mycentos7 的交互式容器;下面指令中的镜像名称 centos:7 也可以使用镜像id 
    docker run -it --name=mycentos7 centos:7 /bin/bash
    

创建守护式容器

如果需要长期运行的容器,我们可以创建一个守护式容器。

# 先拉取一个镜像
docker pull centos:7
# 创建并启动守护式容器 
docker run -di --name=mycentos2 centos:7
# 登录进入容器命令
# docker exec -it container_name (或者 container_id) /bin/bash(exit退出时,容器不会停止)
docker exec -it mycentos2 /bin/bash 12345

停止并启动容器

# 停止正在运行的容器
# docker stop 容器名称或者ID
docker stop mycentos2
# 启动已运行过的容器
# docker start 容器名称或者ID 
docker start mycentos2

文件拷贝

# 将linux宿主机中的文件拷贝到容器内可以使用命令
docker cp 宿主机目录或文件 容器名称:容器目录

# 将文件从容器内拷贝出来到linux宿主机使用命令
docker cp 容器名称:容器目录 宿主机文件或目录

安装相关应用

# 拉取MySQL 最新镜像
docker pull mysql
# 正常是不需要挂载目录的
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
# 如果需要挂载目录
docker run -d -p 3306:3306 --name mysql -v /usr/local/apps/mysql/conf:/etc/mysql -v /usr/local/apps/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
  • –name:容器名,此处命名为mysql
  • -e:配置信息,此处配置mysql的root用户的登陆密码
  • -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
  • -v:主机和容器的目录映射关系,”:”前为主机目录,之后为容器目录
# 拉取tomcat最新镜像
docker pull tomcat
# 运行tomcat,并暴露了8080,443,80三个端口,挂载webapps,conf目录(方便后期调试部署)
docker run -d -p 8080:8080 -p 443:443 -p 80:80 -v /usr/local/apps/tomcat/webapps:/usr/local/tomcat/webapps -v /usr/local/apps/tomcat/conf:/usr/local/tomcat/conf --name tomcat tomcat

见:Portainer

正文完
 
裴先生
版权声明:本站原创文章,由 裴先生 2021-01-22发表,共计3490字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
本站勉强运行: