0、环境说明
- os:Ubuntu 20.04
- docker:Docker version 19.03.13
- docker-compose:docker-compose version 1.27.4
- tomcat:9.0+
- redis:6+
- myql:8+
安装开始
1、安装 VMware Workstation Pro 15版本
2、安装 Ubuntu 20.04
- 这个是 Ubuntu 最新的 TLS 版本,支持到2025年
- 官网下载地址
- 这个是阿里云的镜像地址 想下哪个点哪个
3、配置用户
设置用户root
用安装引导的用户登录,然后:
$ sudo passwd root
---输入你想要设置的 root 密码
如果安装系统的时候安装了ssh服务 ,远程调用 ssh 就需要开启root的远程访问权限
$ vi /etc/ssh/sshd_config
-- 将注释掉的 #PermitRootLogin prohibit-password 这一行。改为 PermitRootLogin yes
$ systemctl restart ssh
4、安装 docker
官方文档 说的很详细(2020 年大家的文档都很好呀)简单的来看就是下面这样:
4.1 apt 安装
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
4.2 添加 docker 软件源
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
ps:
- 国内就把 _https://download.docker.com/linux/ubuntu 替换成 _https://mirrors.aliyun.com/docker-ce/linux/ubuntu 这样快一些
- lsb_release -cs 这里是 focal ,Ubuntu 发行版本的命名很有意思
4.2 安装 docker
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
- ce 是社区版本,ee是 docker 公司的商用版本
- containerd 是 docker 引擎的的底层,其实容器镜像的操作应该都是 containerd 管理的
4.3 配置镜像加速器
如果你的网络和我一样是国内运营商的话,还需要配置一下镜像加速器地址
我这里配置的是阿里云的加速器 : 登录阿里云 --> 进入控制台 --> 搜索“容器镜像服务”进入--> 找到“镜像加速器”菜单
$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
5、安装 docker-compose
官方文档 说的非常详细,简单一点就是下面这样:
5.1 github 安装
- curl 安装
$ 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
- 给下载的 文件加执行权限
$ sudo chmod +x /usr/local/bin/docker-compose
- 测试一下
$ docker-compose --version
$ docker-compose version 1.27.4, build 1110ad01
打工搞成
5.2 pip3 安装
docker-compose 是python 写的。。。。。 我们可以用 pip3 安装
- 安装 python3-pip3
# Ubuntu 20.04 自己带着 python3,不过我们需要装一下pip3
$ apt install python3-pip
- 安装 docker-compose
$ pip3 install docker-compose
ps:
- docker 和 docker-compose 是有版本对应的。
6、安装 mysql、tomcat、redis、mongdb 、adminer、mongo-express
adminer 是 php 写的一个简易的数据库web客户端
mongo-express是一个MongoDB的Admin Web管理界面
6.1 创建reids 和 mysql 配置文件
6.1.1 mysql
$ cd ~ # 回到home目录
$ mkdir -p mysql/confi.d # 创建 文件夹
$ vim mysql/conf.d/my.cnf # 创建mysql配置文件 文件内容如下
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
6.1.2 reids
$ cd ~ # 回到home目录
$ mkdir -p redis/conf # 创建 文件夹
$ vim redis/conf/redis.conf # 创建redis配置文件 文件内容如下 这里的redis 是123456
requirepass 123456
stop-writes-on-bgsave-error no
rdbcompression no
dbfilename dump.rdb
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
dir /data/
6.2 创建docker-compose.yml 文件
$ cd ~ # 回到home目录
$ vi docker-compose.yml # 创建 配置文件 文件内容如下
version: '3.1'
services:
mongo:
container_name: mongo
image: mongo
volumes:
- ./mongo/db:/data/db # /data/db是container中存放数据位置
ports:
- 27017:27017
restart: always
mongo-express:
container_name: mongo-express
links:
- mongo # 这里关联到mongo的container
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_BASICAUTH_USERNAME: zhangshan
ME_CONFIG_BASICAUTH_PASSWORD: 123456
mysql:
container_name: mysql
image: mysql
ports:
- 33060:33060
- 3306:3306
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
restart: always
volumes:
- ./mysql/db:/var/lib/mysql
- ./mysql/conf.d:/etc/mysql/conf.d
environment:
MYSQL_ROOT_PASSWORD: 123456
adminer:
image: adminer
restart: always
ports:
- 8082:8080
redis:
container_name: redis
image: redis
restart: always
command: redis-server /usr/local/etc/redis/redis.conf
ports:
- 6379:6379
volumes:
- ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
- ./redis/db/:/data/
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 8080:8080
# 在docker中,右边一般都是容器内,左边都是指宿主机
volumes:
- ./tomcat/webapps:/usr/local/tomcat/webapps
environment:
TZ: Asia/Shanghai
7、启动起来
$ cd ~
$ docker-compose up -d
8、验证
在主机浏览器中输入
http://Ubuntu IP 地址:8080/http://Ubuntu IP 地址:8081/ 用户名 zhangshan 密码 123456
http://Ubuntu IP 地址:8082/
tomat访问的时候应该是 404 是因为这样的
$ docker exec -it tomcat /bin/bash # 进入到 名字是 tomcat 的docer 容器中,并且是以/bin/bash 命令进入的
$ ls
有2个文件 webapps 和 webapps.dist 我们熟知的tomcat 首页是空的
$ exit # 从容器中退出
$ cd ~/tomcat/webapps
$ mkdir ROOT # 创建熟悉的目录
$ vim ROOT/index.html # 在文件中 写入 “hello docker”
在访问 http://Ubuntu IP 地址:8080/ 就会看到效果了