docker安装与命令
使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
启动docker
systemctl start docker
重启docker
systemctl restart docker
停止docker
systemctl stop docker
搜索镜像
docker search 镜像名称
下载镜像
docker pull 镜像
查看已安装镜像列表
docker images
删除镜像
docker rmi 镜像id
运行镜像生成新的容器
docker run -d -it 镜像名称:版本号
eg: docker run -d -it -p 8080:8080 tomcat:7
-p 端口映射,前者宿主机端口,后者容器端口,多个端口 -p 8080:8080 -p 9090:9090
-d 后台运行容器
-it 以交互模式运行容器
eg: docker run -d -it -p 8080:8080 --name test -v /opt:/opt tomcat:7
-v 数据挂载
-e 设置配置参数
-e TZ="Asia/Shanghai" 设置时区
--network=host 容器端口映射主机端口
--restart always docker重启时重启容器
查看运行容器
docker ps
查看所有容器
docker ps -a
进入容器
docker exec -it 容器id /bin/bash
退出容器不停止容器
Ctrl+P+Q
退出容器停止容器
exit
当容器启动时有添加 -d命令同时有进程在前台运行时exit退出时不会停止容器
容器的启动停止
docker start 容器id
docker stop 容器id
重启容器
docker restart 容器id
删除容器
docker rm 容器id
查看容器日志
docker logs 容器id -f
查看指定时间后的日志,只显示最后100行
docker logs -f -t --since="2020-06-17" --tail=100 CONTAINER_ID
查看某时间段日志
docker logs -t --since="2020-06-17T13:23:37" --until "2020-06-17T12:23:37" CONTAINER_ID
修改已启动的容器的时区
1.复制相应的时区文件,替换系统时区文件;
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
有的容器基础镜像是有这个文件的,直接拷贝就可以,如果不能拷贝,则是因为创建镜像时依赖的基础镜像 运行的容器没有这两个文件,使用下面的办法
2. 创建文件夹
mkdir -p /usr/share/zoneinfo/Asia
3.回到宿主机,复制宿主机里的文件到容器中
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID或容器名:/usr/share/zoneinfo/Asia
4. 进入容器
docker exec -it 容器Id或容器名 bash
执行命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5. 验证 输入 date
docker安装MySQL
docker search mysql 命令来查看可用版本
下载 Mysql 镜像
docker pull mysql:5.6
部署启动MySQL镜像
docker run -d \
--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
- -d:以后台的方式运行;
- --name mysql:指定容器的名称为 mysql;
- -p 3306:3306 将容器的 3306 端口挂载到宿主机的 3306 端口上;
- -e MYSQL_ROOT_PASSWORD=123456:指定 root 的密码为 123456
将容器中的目录文件复制到宿主机中
# 将容器中的 mysql 配置文件复制到宿主机中指定路径下,路径可以根据需要进行修改
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /usr/local/docker/mysql/config
# 将容器中的 mysql 存储目录复制到宿主机中
docker cp mysql:/var/lib/mysql/ /usr/local/docker/mysql/data
停止容器并删除
docker stop 容器id
docker rm 容器id
正式运行 Mysql 容器并将刚刚复制到本地的配置和存储目录挂载到新的容器里面
docker run -d \
--name mysql \
-p 3306:3306 \
--restart always \
-v /usr/local/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v /usr/local/docker/mysql/data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
完成后可以docker ps查看容器是否运行,确认运行远程连接
docker安装zookeeper
下载zookeeper镜像
docker pull zookeeper
启动容器并添加映射
docker run -d -p 2181:2181 --name zookeeper01 --restart always 镜像id
docker 安装redis
docker run -d \
-p 6379:6379 \
--name redis \
--restart always \
-v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/data:/data \
redis:alpine \
redis-server --appendonly yes --requirepass "123456"
- -p 6379:6379: 将容器的 6379 端口映射到宿主机的 6379 端口;
- --restart always 设置docker重启时自动重启容器
- -v /usr/local/docker/redis/data:/data : 将容器中的 /data 数据存储目录, 挂载到宿主机中 /usr/local/docker/redis/data 目录下;
- -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf : 将容器中 /etc/redis/redis.conf 配置文件,挂载到宿主机的 /usr/local/docker/redis/redis.conf 文件上;
- redis-server --appendonly yes: 在容器执行 redis-server 启动命令,并打开 redis 持久化配置;
- --requirepass "123456" 设置redis密码
进入redis容器并且连接redis 确认正常运行
docker exec -it redis redis-cli -h 127.0.0.1 -p 6379 -a password
docker 安装RabbitMQ
下载镜像
#指定版本,该版本包含了web控制页面
docker pull rabbitmq:management
运行镜像
docker run -d \
--hostname my-rabbit \
--name rabbit \
--restart always \
-e RABBITMQ_DEFAULT_USER=user \
-e RABBITMQ_DEFAULT_PASS=password \
-p 15672:15672 -p 5672:5672 rabbitmq:management
访问管理页面
http://localhost:15672/
docker安装nginx
拉取镜像
docker pull nginx:1.8
测试启动
docker run --name nginx-test -p 8081:80 -d nginx
将容器内nginx的配置文件拷贝到本地
docker cp a2bdd792b474:/etc/nginx/nginx.conf /usr/local/docker/nginx/conf
赋予本地存放nginx配置中的文件夹开放权限
chmod -R 777 nginx
创建容器启动镜像,将配置等需要修改的文件进行映射
docker run -d \
-p 80:80 \
--name nginx-test-web \
--restart always \
--network=host \
-v /usr/local/docker/nginx/www:/usr/share/nginx/html \
-v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker/nginx/logs:/var/log/nginx nginx
创建一个index.html放入www文件夹中,访问部署的地址
docker 安装 zipkin
1、拉镜像
docker pull openzipkin/zipkin
2、运行镜像
docker run -d --restart always -p 9411:9411 --name zipkin openzipkin/zipkin
3、访问可视化界面
浏览器访问:http://ip:9411/zipkin/
docker 安装 nacos
拉镜像,版本查看:https://github.com/nacos-group/nacos-docker
docker pull nacos/nacos-server:1.1.4
创建数据目录
mkdir -p /usr/local/docker/nacos/logs
创建存储nacos配置的数据库
create database nacos_config
nacos初始化sql,需要先创建nacos数据库后,然后执行下面的sql
https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql
/******************************************/
/* 数据库全名 = nacos_config */
/* 表名称 = config_info */
/******************************************/
CREATE TABLE `config_info` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `data_id` varchar(255) NOT NULL COMMENT 'data_id', `group_id` varchar(255) DEFAULT NULL, `content` longtext NOT NULL COMMENT 'content', `md5` varchar(32) DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', `src_user` text COMMENT 'source user', `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip', `app_name` varchar(128) DEFAULT NULL, `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', `c_desc` varchar(256) DEFAULT NULL, `c_use` varchar(64) DEFAULT NULL, `effect` varchar(64) DEFAULT NULL, `type` varchar(64) DEFAULT NULL, `c_schema` text, PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info'; /******************************************/ /* 数据库全名 = nacos_config */ /* 表名称 = config_info_aggr */ /******************************************/ CREATE TABLE `config_info_aggr` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `data_id` varchar(255) NOT NULL COMMENT 'data_id', `group_id` varchar(255) NOT NULL COMMENT 'group_id', `datum_id` varchar(255) NOT NULL COMMENT 'datum_id', `content` longtext NOT NULL COMMENT '内容', `gmt_modified` datetime NOT NULL COMMENT '修改时间', `app_name` varchar(128) DEFAULT NULL, `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段'; /******************************************/ /* 数据库全名 = nacos_config */ /* 表名称 = config_info_beta */ /******************************************/ CREATE TABLE `config_info_beta` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `data_id` varchar(255) NOT NULL COMMENT 'data_id', `group_id` varchar(128) NOT NULL COMMENT 'group_id', `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', `content` longtext NOT NULL COMMENT 'content', `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps', `md5` varchar(32) DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',