Docker学习笔记

Docker学习笔记

学习时参考的是该篇文章,写的很透彻。

一、基本介绍

1.简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口 (类似 iPhone 的 app),更重要的是容器性能开销极低。

2.应用场景

Web 应用的自动化打包和发布
自动化测试和持续集成、发布
在服务型环境中部署和调整数据库或其他的后台应用
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS (Platform-as-a-Service) 环境

3.优点

①简化程序
②避免选择恐惧症
③节省开支
④轻松快捷配置
⑤提高工作效率
⑥应用隔离
⑦云调度,项目用Docker部署就可以称之为是云应用

4.系统架构

Docker使用客户端-服务器(C/S)架构模式,使用远程API管理创建Docker容器。Docker容器通过Docker镜像创建。相当于面向对象中的对象与类:容器(对象)镜像(类)

5、Docker安装

①查看内核版本:uname -r uname --m
②更新数据源:cd /etc/apt vi sources.list apt-get update

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

③使用脚本安装:curl -sSL https://get.daocloud.io/docker | sh
④启动tomcat成功,但是访问不到页面时,可以查看启动的webapps中是否有访问页面,如果没有将该文件夹删除 rm -rf webapps,将webapps.list改名成webapps即可。
⑤启动mysql 时,如果提示端口占用可以用netstat -tanlp查看3306端口是否被占用,如果占用将最后一列PID号kill掉即可

二、Docker Compose

1.简介

Docker Compose 是一种用于通过使用单个命令创建和启动 Docker 应用程序的工具。我们可以使用它来配置应用程序的服务。
它是开发,测试和升级环境的利器。
它提供以下命令来管理应用程序的整个生命周期:
启动,停止和重建服务
查看运行服务的状态
流式运行服务的日志输出
在服务上运行一次性命令
要实现 docker compose,需要包括以下步骤:
将应用程序环境变量放在 Docker 文件中以公开访问。
在 docker-compose.yml 文件中提供和配置服务名称,以便它们可以在隔离的环境中一起运行。
运行 docker-compose 将启动并运行整个应用程序。

2.安装和使用

①去https://github.com/docker/compose/releases/下载Linux的放到虚拟机上
②给 docker-compose 添加执行的权限:sudo chmod +x /usr/local/bin/docker-compose
③查看 docker-compose 的版本:docker-compose version
④前台运行:docker-compose up
⑤后台运行:docker-compose up -d
⑥启动:docker-compose start
⑦停止:docker-compose stop
⑧停止并移除容器:docker-compose down

3.运行tomcat

如果启动tomcat成功访问404则修改webapps文件夹即可。参考:
修改tomcat404问题
docker-compose.yml 配置文件:
version: ‘3’
services:
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 8080:8080
volumes:
- /usr/local/docker/tomcat/webapps/test:/usr/local/tomcat/webapps/test
environment:
TZ: Asia/Shanghai

4.运行MySQL
docker run -d --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

mysql -u root -p
输入mysql密码
show databases;查看mysql数据库
use mysql; 进入mysql数据库
show tables; 查看表
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Caoxu0407@';  更新密码

docker-compose.yml 配置文件:
version: ‘3’
services:
mysql:
restart: always
image: mysql
container_name: mysql
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
–character-set-server=utf8mb4
–collation-server=utf8mb4_general_ci
–explicit_defaults_for_timestamp=true
–lower_case_table_names=1
–max_allowed_packet=128M
–sql-mode=“STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO”
volumes:
- mysql-data:/var/lib/mysql

volumes:
mysql-data:
注:如果docker启动了mysql远程连接不上数据库可以执行。如:

sudo mkdir -p /var/run/mysqld
sudo chown mysql /var/run/mysqld/
sudo service mysql restart
5.解决docker下载容器慢问题

== ①输入命令:cd /etc/docker,找到daemon.json文件,如果没有就新建一个。==
== ②打开daemon.json,配置内容:==

{
    "registry-mirrors":["https://almtd3fa.mirror.aliyuncs.com"]      
}

③重启docker即可:service docker restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值