Docker指令及常用软件安装汇总
我个人推荐smart work, 在我的team从来不鼓励加班,所以如何做高效工作呢,那就是高效利用我们的开发工具,只有熟练的使用武器才能给你减少时间上的浪费,从而带来一些时间增益。下面我这边将汇总一些常用工具快捷键,可以提高我们工作效率;
1. VIM编辑器指令汇总
2. Ubuntu常用指令汇总
3. Docker常用指令汇总
4. IDEA常用快捷键汇总
6. Win10常用快捷键汇总
建议所有的快捷键每个季度花一个小时复习一遍,直到完全被你的手指记住~
1.1 docker核心概念
docker主机(Host):安装了docker程序的机器。docker直接安装再操作系统上。
docker客户端(Client):连接docker主机进行操作。
docker仓库(Registry):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用。
1.2 安装docker (ubnutu)
这种安装方式首先要保证Ubuntu服务器能够访问Docker仓库地址:https://download.docker.com/linux/ubuntu,如果能够访问,按照下面的操作步骤进行安装。 $ sudo apt update $ sudo apt install apt-transport-https ca-certificates curl software-properties-common 在/etc/apt/sources.list.d/docker.list文件中添加下面内容 deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable 添加秘钥 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 安装docker-ce $ sudo apt install docker-ce 查看是否安装成功: $ docker --version Docker version 18.03.0-ce, build 0520e24
1.3 docker常用操作
1.3.1 docker 启动 停止 重启操作
启动 systemctl start docker
重启docker systemctl restart docker
关闭docker systemctl stop docker
1.3.2 docker镜像操作
操作 | 命令 | 说明 |
---|---|---|
检索 | docker serach 关键字 eg:docker search redis | 我们经常去docker上检索镜像详细信息,如镜像的TAG. |
拉取 | docker pull 镜像名:tag | :tag是可选的,tag表示标签,多为软件的版本,默认是latest |
列表 | docker images | 查看所有本的镜像 |
删除 | docker rmi image-id | 删除制定的本地镜像 |
docker镜像仓库:https://hub.docker.com/
1.3.3 docker容器操作
操作 | 命令 | 说明 |
---|---|---|
运行 | docker run -name container -name -d image-name eg: docker run -name myredis -d redis | -name: 自定义容器名 -d:后台运行 image-name:指定镜像模板 |
列表 | docker ps(查看运行中的容器) | 加上-a 可以查看所有容器 |
停止 | docker stop container-name/container-id | |
启动 | docker start container-name/container-id | |
删除 | docker rm container-id | |
端口映射 | -p 6379:6379 eg:docker run -d -p 6379:6379 -name myredis docker.io/redis | -p: 主机端口(映射到)容器内部的端口 |
容器日志 | docker logs container-name/container-id | |
进入容器 |
docker exec -ti container-id /bin/bash |
|
更多命令 | https://docs.docker.com/engine/reference/commandline/docker/ |
1.4 docker安装应用
1.4.1 安装msql
查看mysql > docker search mysql 下载mysql > docker pull mysql 查看已经下载的镜像 > docker images 启动mysql加上端口映射 >docker run -p 3306:3306 --name brian_mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql 停止myswl > docker stop contioner-id mysql的一些高级操作:https://hub.docker.com/_/mysql/
1.4.2安装oracle
启动 docker run --name brian_oracle -d -p 1522:22 -p 1521:1521 ee3351d51185 docker run brian_oracle -d
1.4.3 安装gitlab
安装gitlab--------------- docker run --name brian_gitlab -d -p 10010:80 -p 2222:22 -p 8433:433 991cd608c116 angular 与gitlab实现 ci/cd----- https://juejin.im/post/5bc3e8e66fb9a05ce37b1fd8
gitlab runner安装------------
1.https://blog.csdn.net/frankcheng5143/article/details/79838414
2.runner 负责编译 到指定路径下,然后用nginx跑前端代码
更改nginx默认端口,ubuntu更改nginx端口号
==>https://blog.csdn.net/w20101310/article/details/78835668
3.runner 权限不足的问题-----
gitlab runner默认运行时user mode,想提升权限,只需要运行gitlab runner 的时候使用sudo即可。
==> sudo gitlab-runner stop /start
docker容器中 gitlab 修改HTTP连接方式中的IP和端口--------------
https://blog.csdn.net/xiaoxiangzi520/article/details/81145180
我这边是配置的域名
1.4.4 安装zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
zk cluster搭建------------------------
https://www.jianshu.com/p/98bb69256cc3
docker run --name brian_kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.0.102:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.102:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-d wurstmeister/kafka
#我安装的kafka对应版本 kafka_2.13-2.7.0
当然如果你不想基于Docker按装,只想在ubuntu上安装 可以参考:https://towardsdatascience.com/install-a-kafka-cluster-on-ubuntu-in-aws-17c951287284
如果上面的指导不够全面可以去参考官网的方法:https://docs.confluent.io/platform/current/quickstart/ce-quickstart.html#ce-quickstart
如果你感觉本地搭建太费而且本地资源不够搭建kafka服务, 这里有个免费的kafka的服务可以使用一个月: https://medium.com/swlh/a-free-apache-kafka-cloud-service-and-how-to-quickly-get-started-with-it-8f14520fff35
此外这里还有一个懒人版的开源的kafka server flatform:https://docs.confluent.io/platform/current/quickstart/ce-quickstart.html#ce-quickstart
基于docker安装的快速测试 kafka topic------------------------------
the test topic: brian_t
1. 进入kafka docker 容器
sudo docker exec -i -t ${CONTAINER ID} sh
2.进入kafka默认目录
cd opt/kafka
3.创建一个topic
bin/kafka-topics.sh --create --zookeeper ${IP}:2181 --replication-factor 1 --partitions 1 --topic brian_t
4.创建一个procuder
bin/kafka-console-producer.sh --broker-list ${IP}:9092 --topic brian_t
5.创建一个consumer
bin/kafka-console-consumer.sh --bootstrap-server ${IP}:9092 --topic brian_t --from-beginning
1.4.6 安装ElasticSearch
1. Elasticsearch 版本6.4.3
docker run -d -p 9200:9200 -p 9300:9300 --name brian_es elasticsearch:6.4.3
安装会报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案:
使用下面命令解决:
vi /etc/sysctl.conf
添加 一行 vm.max_map_count=655360
执行 sysctl -p
重启 es服务
web访问地址:127.0.0.1:9200
v5.x以后不支持plugin需要独立部署
安装
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
1.4.7 安装ELK(版本643)
docker pull sebp/elk:643
docker run -d -p 5044:5044 -p 127.0.0.1:5601:5601 -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 --name=brian_elk 2a058ea9c018
Kibana访问地址:127.0.0.1:5601
访问容器
logstach位置 /opt/logstash/
输入源配置文件位置:/usr/local/sql
更新logstash引入 配置 pipeline.yml
docker run -d -p 9000:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name brian_portainer portainer/portainer-ce
docker start brian_portainer
访问页面:http://IP:9000
docker run
--env MODE=standalone
--env SPRING_DATASOURCE_PLATFORM=mysql
--env MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
--env MYSQL_MASTER_SERVICE_HOST=140.143.218.23
--env MYSQL_MASTER_SERVICE_PORT=10121
--env MYSQL_MASTER_SERVICE_USER=root
--env MYSQL_MASTER_SERVICE_PASSWORD=kawakkkkk
--env MYSQL_SLAVE_SERVICE_HOST=140.143,218.23
--env MYSQL_SLAVE_SERVICE_PORT=10121
--env MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
--name brian_nacos -d -p 8848:8848 nacos/nacos-server
1.4.10 build mage and push image to docker hub
1、将jar包上传linux服务器/usr/local/dockerapp目录,在jar包所在目录创建名为Dockerfile的文件 2、在Dockerfile中添加以下内容 ###指定java8环境镜像 FROM java:8 ###复制文件到容器app-springboot ADD docker-jrx-0.0.1.war /jrxappserver-0.0.1-SNAPSHOT.war ###声明启动端口号 EXPOSE 8080 ###配置容器启动后执行的命令 ENTRYPOINT ["java","-jar","/jrxappserver-0.0.1-SNAPSHOT.war"]
使用docker build指令构建镜像-------------------------------------
docker build -t docker-jrx-0.0.1 .
# 格式: docker build -t 镜像名称:标签 Dockerfile的相对位置
docker run -d -p 8080:8080 docker-jrx-0.0.1 .
push image to docker hub----------------------------------------
push前需要打tag标签,我中hub仓库为dockerszhuangl1991
docker tag imageid dockerszhuangl1991/serviceName:0.0.1。
1.4.11 docker-compose-file ,env-file
https://docs.docker.com/compose/compose-file/ https://docs.docker.com/compose/env-file/
1.4.12 push代码后jenkins构建 image
1.配置push代码后构建 (主要是配置WebHooks 设置) https://blog.csdn.net/guanshulixiao/article/details/76174731 2.build 前端angular (依赖node环境) 配置node环境 https://www.jianshu.com/p/0a865a321d78 3. build 后端springboot springclod 使用maven打包项目,项目配置找到构建,下拉找到调用顶层Maven目标,目标这个选项就是要打包的指令 (test,package,install....) 4. build docker 镜像 5. 自动push 镜像到 docker hub
1.4.13 redis主备搭建
主机的 redis 命令行:SLAVEOF 主机IP 主机port
1.4.14 elk - logstashh同步MySQL数据
1. docker cp 拷贝 ***.conf 到/usr/local/sql/aaa.conf 文件夹下 2. vim 到 config/pipelines.yml 添加 - pipeline.id: table1 path.config: "/usr/local/sql/aaa.conf" 3. 重启ELK项目 logstash每一分钟同步一次