当前位置:   article > 正文

docker和Docker Compose安装使用以及常用指令_在线安装docker和docker compose命令

在线安装docker和docker compose命令

Docker

什么是docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器 [2]

起源

Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。

Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。

一款开源软件能否在商业上成功,很大程度上依赖三件事 - 成功的 user case(用例), 活跃的社区和一个好故事。 dotCloud 之家的 PaaS 产品建立在docker之上,长期维护且有大量的用户,社区也十分活跃,接下来我们看看docker的故事。

  • 环境管理复杂 - 从各种OS到各种中间件到各种app, 一款产品能够成功作为开发者需要关心的东西太多,且难于管理,这个问题几乎在所有现代IT相关行业都需要面对。
  • 云计算时代的到来 - AWS的成功, 引导开发者将应用转移到 cloud 上, 解决了硬件管理的问题,然而中间件相关的问题依然存在 (所以openstack HEAT和 AWS cloudformation 都着力解决这个问题)。开发者思路变化提供了可能性。
  • 虚拟化手段的变化 - cloud 时代采用标配硬件来降低成本,采用虚拟化手段来满足用户按需使用的需求以及保证可用性和隔离性。然而无论是KVM还是Xen在 docker 看来,都在浪费资源,因为用户需要的是高效运行环境而非OS, GuestOS既浪费资源又难于管理, 更加轻量级的LXC更加灵活和快速
  • LXC的移动性 - LXC在 linux 2.6 的 kernel 里就已经存在了,但是其设计之初并非为云计算考虑的,缺少标准化的描述手段和容器的可迁移性,决定其构建出的环境难于迁移和标准化管理(相对于KVM之类image和snapshot的概念)。docker 就在这个问题上做出实质性的革新。这是docker最独特的地方。

VM技术和容器技术对比VM技术和容器技术对比

面对上述几个问题,docker设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后一个标准化组件是用户的app)。这也就是基于docker的PaaS产品的原型。

安装jdk8

1.tar -zxvf jdk-8u221-linux-x64.tar.gz
2.mv jdk1.8.0_221 /usr/local/jdk8
3.vi /etc/profile
export JAVA_HOME=/usr/local/jdk8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
4.source /etc/profile
5.java javac java -version、


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

安装docker

直接使用官方命令一键安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • 1

启动
systemctl start docker.service

查看状态
systemctl status docker.service

让他后台自动挂起启动
systemctl enable docker.service

配置镜像加速器

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://c8vhi84g.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

使用命令查找镜像信息

 docker search mysql
  • 1

下载mysql (不止于mysql)

docker pull mysql的话默认最新版本 需要指定版本就:版本

docker pull mysql:5.7

查看镜像是否被下载拉取下来

docker images
  • 1

运行容器并设置mysql密码

--name 运行名字为mysql57的数据库
--e  mysql密码
--p     端口映射 3306:3306
--让mysql后台运行
docker run --name mysql57shen -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql:5.7
  • 1
  • 2
  • 3
  • 4
  • 5

查询启动的容器 加-a没启动的也能查询出来

docker ps -a 7.0.62

停止容器

docker stop id

启动容器**

docker start id

暴力删除容器 不加id 需要停止再删除加stop

docker (stop) rm -rf id

删除所有的容器

docker rm -f $(docker ps -qa)
  • 1

进入mysql 容器

 docker exec -it 
  • 1

删除镜像

docker rmi imageID
  • 1

容器与主机之间数据拷贝

docker cp 文件那个位置  到那个位置	``
  • 1

常用命令

#查询在docker仓库中是否有这个工具/软件
#可以通过官网进行查询(https://hub.docker.com)
docker search 名称
docker search mysql
#拉取需要的镜像(image)
docker pull 名称:tags
docker pull mysql:8.0.13
#查看拉取的镜像文件(相当于现在已经下载了一个安装包)
docker images/docker image ls
#删除镜像
docker rmi 镜像ID
#如何启动一个容器(怎么安装这个安装包) -deamon
docker run --name 自定义名称 -e 参数 -p 宿主机端口:容器端口 -d 镜像名称
#以安装mysql为例
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:8.0.13
#查看启动日志
docker logs 容器名称/容器ID
#停止运行中的容器
docker stop 容器ID
#启动停止的容器
docker start 容器ID
#查看所有的容器
docker ps -a
#仅仅只查看启动的容器
docker ps
#删除启动中的容器(这个容器必须是已经停止的)
docker rm 容器ID
#强制删除一个容器
docker rm -f 容器ID
#修改密码
#先要进入容器内部
#docker 执行 交互 容器 到bin目录以bash命令进行交互
docker exec -it 容器ID /bin/bash
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

装 Docker Compose

直接用一键安装 #1.Run this command to download the current stable release of Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • 1

#2.Apply executable permissions to the binary:

sudo chmod +x /usr/local/bin/docker-compose
  • 1

#3.Test the installation.

docker-compose --version
  • 1

成功

docker-compose version 1.27.4, build 1110ad01
  • 1

然后 cd docker
创建yaml
mkdir docker-compose.yaml
vi docker-compose.yaml

这是我的配置文件
直接安装mysql,nacos,sentinel,rabbitmq

services:
  mysql:
    container_name: mysql
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    volumes:
      - /app/cloud/mysql/data:/var/lib/mysql
    ports:
      - "3307:3306"
    restart: always

  nacos:
    image: nacos/nacos-server:1.4.1
    container_name: nacos
    hostname: nacos
    restart: always
    environment:
      - MODE=standalone
      - TZ=Asia/Shanghai
      - NACOS_SERVER_PORT=8848
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=119.23.176.114
      - MYSQL_SERVICE_PORT=3307
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - PREFER_HOST_MODE=hostname
    volumes:
      - /app/cloud/nacos/logs:/home/nacos/logs
    ports:
      - "8848:8848"
  sentinel:
    image: bladex/sentinel-dashboard:1.8.0
    container_name: sentinel
    ports:
      - "8858:8858"
    restart: always
  rabbitmq:
    hostname: rabbitmq
    environment:
      RABBITMQ_DEFAULT_VHOST: "root"
      RABBITMQ_DEFAULT_USER: "root"
      RABBITMQ_DEFAULT_PASS: "123456"
    image: "rabbitmq:3.9.14-management"
    restart: always
    volumes:
      - "/usr/local/bank/rabbitmq/data:/var/lib/rabbitmq"
      - "/usr/local/bank/rabbitmq/log:/var/lib/rabbitmq/log"
    ports:
      - "15672:15672"
      - "4369:4369"
      - "5672:5672"
      - "25672:25672"  

执行
docker-compose up -d
 -d是后台运行
 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/802477
推荐阅读
相关标签
  

闽ICP备14008679号