同事安装Mysql只用了一条命令,活该他涨薪
容器化概念越来越普及,很多公司都在往这个方向发展,也有不少公司在招聘要求上提到这点。Docker就是一个出色的、开源的应用容器引擎。只需要一条命令就可安装一个软件环境,非常方便。
以下以Centos为例:
确保 yum 包更新到最新。
sudo yum update
卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker docker-common docker-selinux docker-engine
安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
查看仓库中docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
安装docker
sudo yum install docker-ce-<v>
根据上一步选择一个最新版本安装,我选择的是 18.03.1.ce
sudo yum install docker-ce-18.03.1.ce
启动并加入开机启动
启动:systemctl start docker
停止: systemctl stop docker
重启:systemctl restart docker
开机自启: systemctl enable docker
查看版本: docker version
查看状态: systemctl status docker
|
|
示例
# 修改文件
vi /etc/docker/daemon.json
# 增加如下配置
{"registry-mirrors": ["https://mltfzuzk.mirror.aliyuncs.com"]}
# 重启docker
systemctl restart docker.service
// 查看运行中的容器
docker ps
// 查看所有的容器
docker ps -a
// 搜索镜像
docker search keyword
// 例:docker search mysql
// 查看下载的镜像
docker iamges
// 启动容器
docker start [容器名/容器ID]
// 停止容器
docker stop [容器名/容器ID]
// 重启容器
docker restart [容器名/容器ID]
// 删除已停止的容器
docker rm [容器名/容器ID]
// 强制删除容器
docker rm -f [容器名/容器ID]
// 删除镜像
docker rmi 镜像id
// 查看容器日志
docker logs [容器名/容器ID]
// 查看容器运行状态信息
docker stats
// 将宿主机目录拷贝到容器目录
docker cp [path1] [容器ID]:[path2]
// 将容器目录拷贝到宿主机目录
docker cp [容器ID]:[path2] [path1]
一般安装前需要先拉取镜像
命令:docker pull [softName]:[version]
# softName -- 下载的软件名,如:mysql、redis等
# version -- 下载软件的版本
例子: ## 拉取mysql5.7的镜像 docker pull mysql:5.7 |
不过后面发现,直接安装也会默认执行这步拉取镜像操作。
## 创建并运行容器命令:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
## 常用OPTIONS说明:
-d: 后台运行容器,并返回容器ID;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-e: 设置环境变量,例:-e TZ="Asia/Shanghai" 设置时区;
--env-file=[]: 从指定文件读入环境变量;
-m :设置容器使用内存最大值;
--volume , -v: 绑定一个卷;
--name xxx: 为容器指定一个名称;
--restart=always 容器自动重启
-
Mysql
docker run -p 3306:3306 --restart=always -e TZ="Asia/Shanghai" \
--name mymysql -v /usr/local/gourd/docker/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/gourd/docker/mysql/logs:/logs \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
Tomcat
docker run -p 8080:8080 --name gourdtomcat \
--restart=always -e TZ="Asia/Shanghai" \
-v /docker/tomcat/test:/usr/local/tomcat/webapps/test -d tomcat
Redis
docker run -p 6379:6379 --restart=always -e TZ="Asia/Shanghai" \
-v /usr/local/gourd/docker/redis/data:/data \
-v /usr/local/gourd/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
--name myredis -d redis redis-server --appendonly yes
Mongo
docker run -d --name mongo --restart=always \
-v /usr/local/gourd/docker/mongodb/datadb:/data/db -p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root \
-e TZ="Asia/Shanghai" --privileged=true mongo
Ngnix
docker run --name gourdnginx -p 80:80 \
--restart=always -e TZ="Asia/Shanghai" -d \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx nginx
Zookeeper
docker run --privileged=true --name zookeeper \
-p 2181:2181 --restart=always -e TZ="Asia/Shanghai" \
-d zookeeper:latest
-
Kafka(需先安装zookeeper)
docker run -d --name kafka -p 9092:9092 --restart=always \
-e TZ="Asia/Shanghai" \
-e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.19.175.13:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.19.175.13:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-t wurstmeister/kafka
Dubbo-admin
docker run -d -p 8280:8080 --restart=always -e TZ="Asia/Shanghai" \
--name dubbo-admin -e dubbo.registry.address=zookeeper://xxx:2181 \
-e dubbo.admin.root.password=root chenchuxin/dubbo-admin
Elasticsearch
# 拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
# 安装
docker run -d --name es -p 9200:9200 -p 9300:9300 \
--restart=always -e TZ="Asia/Shanghai" \
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" \
docker.elastic.co/elasticsearch/elasticsearch:6.3.2
# 安装ik分词器:
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.2/elasticsearch-analysis-ik-6.3.2.zip
Nacos
docker run -d \
-e MODE=standalone -e TZ="Asia/Shanghai" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=xxx -e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=xxx \
-e MYSQL_SERVICE_DB_NAME=nacos -p 8848:8848 \
--restart=always --name mynacos nacos/nacos-server
Sentinel
docker run --name elvis.sentinel -d \
-p 8858:8858 --restart=always \
bladex/sentinel-dashboard
Seata
docker run --name seata-server \
-p 8091:8091 --restart=always -d \
-v /usr/local/seata/config/registry.conf:/resources/registry.conf \
-v /usr/local/seata/config/file.conf:/resources/file.conf \
seataio/seata-server
Activemq
docker run -d --name activemq \
--restart=always -p 61616:61616 -p 8161:8161 -p 61614:61614 \
-v /home/tceport/amq_home/conf:/conf -v /home/tceport/amq_home/data:/data \
webcenter/activemq:latest
Nexus3
docker run -id --privileged=true --name=nexus3 \
--restart=always -p 8081:8081 \
-e INSTALL4J_ADD_VM_PARAMS="-Xms256m -Xmx512m" \
docker.io/sonatype/nexus3
初始账号:admin 初始密码在:新版的初始登录密码已经不是admin123,而是在容器中的/nexus-data/admin.password里面。如下图:
openoffice
docker run -d -p 6080:6080 --restart=always \
-e TZ="Asia/Shanghai" tobegit3hub/dockerized-openoffic
补充:
安利下服务部署利器:docker-compse
# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
如果小伙伴觉得有需要,赶紧mark下吧,下次用到就不用到处翻找资料啦。
「往期文章」
END
扫码二维码
获取更多精彩
JAVA识界