目录
今天刚购买的一台华为云服务器
准备用来
1.搭建一个docker 环境,安装jdk , nginx, redis, rabbitmq 后续直接可以用这个镜像来部署到其他服务器
2.研究下java 调用shell脚本的执行问题
===================================
1.linux服务器修改主机名hostname
刚拿到服务器主机名很长一段,修改主机名
hostnamectl set-hostname <newhostname>
新开一个界面就是显示主机名xl 了
===================================
2.linux服务器在线安装docker
在线安装还是比较简单的
未安装之前:
[root@xl ~]# docker version
-bash: docker: command not found
在线安装:curl -fsSL https://get.docker.com | bash -s docker
[root@xl ~]# curl -fsSL https://get.docker.com | bash -s docker
# Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
+ sh -c 'yum install -y -q yum-utils'
Warning: RPMDB altered outside of yum.
+ sh -c 'yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo'
Loaded plugins: fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
+ '[' stable '!=' stable ']'
+ sh -c 'yum makecache'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/13): docker-ce-stable/7/x86_64/updateinfo | 55 B 00:00:00
(2/13): docker-ce-stable/7/x86_64/filelists_db | 25 kB 00:00:01
(3/13): docker-ce-stable/7/x86_64/primary_db | 60 kB 00:00:00
(4/13): epel/x86_64/prestodelta | 2.4 kB 00:00:00
(5/13): docker-ce-stable/7/x86_64/other_db | 118 kB 00:00:01
(6/13): extras/7/x86_64/filelists_db | 230 kB 00:00:00
(7/13): extras/7/x86_64/other_db | 138 kB 00:00:00
(8/13): base/7/x86_64/other_db | 2.6 MB 00:00:07
(9/13): updates/7/x86_64/other_db | 555 kB 00:00:01
(10/13): epel/x86_64/other_db | 3.4 MB 00:00:09
(11/13): updates/7/x86_64/filelists_db | 4.2 MB 00:00:12
(12/13): epel/x86_64/filelists_db | 12 MB 00:00:18
(13/13): base/7/x86_64/filelists_db | 7.2 MB 00:00:22
Metadata Cache Created
+ '[' -n '' ']'
+ sh -c 'yum install -y -q docker-ce'
warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-20.10.6-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
Public key for docker-ce-20.10.6-3.el7.x86_64.rpm is not installed
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
From : https://download.docker.com/linux/centos/gpg
setsebool: SELinux is disabled.
+ '[' -n 1 ']'
+ sh -c 'yum install -y -q docker-ce-rootless-extras'
Package docker-ce-rootless-extras-20.10.6-3.el7.x86_64 already installed and latest version
================================================================================
To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:
dockerd-rootless-setuptool.sh install
Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.
To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/
WARNING: Access to the remote API on a privileged Docker daemon is equivalent
to root access on the host. Refer to the 'Docker daemon attack surface'
documentation for details: https://docs.docker.com/go/attack-surface/
================================================================================
这个时候再次查看docker版本:
[root@xl ~]# docker version
Client: Docker Engine - Community
Version: 20.10.6
API version: 1.41
Go version: go1.13.15
Git commit: 370c289
Built: Fri Apr 9 22:45:33 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
这个时候需要启动docker 服务:
[root@xl ~]# systemctl start docker
[root@xl ~]# docker version
Client: Docker Engine - Community
Version: 20.10.6
API version: 1.41
Go version: go1.13.15
Git commit: 370c289
Built: Fri Apr 9 22:45:33 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.6
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: 8728dd2
Built: Fri Apr 9 22:43:57 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.4
GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc:
Version: 1.0.0-rc93
GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
docker-init:
Version: 0.19.0
GitCommit: de40ad0
设置开机启动docker服务:
[root@xl ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@xl ~]# systemctl start docker
===================================
3.docker安装nginx
通过命令行查询:
docker search nginx
下载镜像:
docker pull nginx
这个时候查看docker 下面所有的镜像文件,看到已经有了nginx
docker images
运行容器,绑定端口号:
docker run -p 80:80 --name nginx -d nginx
-- name nginx 表示容器名为nginx
-d 表示后台运行
-p 80:80 表示端口号为80
查看docker 下 启动的容器:
docker ps
访问nginx:
===================================
4.docker安装redis
搜索是否存在redis 镜像
docker search redis
找到后将其拉取下来
[root@xl ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
f7ec5a41d630: Already exists
a36224ca8bbd: Pull complete
7630ad34dcb2: Pull complete
c6d2a5632e6c: Pull complete
f1957981f3c1: Pull complete
42642d666cff: Pull complete
Digest: sha256:e10f55f92478715698a2cef97c2bbdc48df2a05081edd884938903aa60df6396
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest
默认是安装的最新版本
这个时候查询docker 下的镜像,就是已经有2个了:
[root@xl ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 739b59b96069 5 days ago 105MB
nginx latest 62d49f9bab67 12 days ago 133MB
现在运行 redis 容器
[root@xl ~]# docker run -p 6379:6379 --name redis -d redis redis-server /etc/redis/redis.conf
f8aaa34220fb0a1b074107240c3b3dd618d9a5d0c038ddd5042c1b236035cb12
这里的参数说明:
docker run -d redis 运行 redis 最新镜像,并生成一个容器 --name redis 容器名为 redis -p 6379:6379 指定端口映射,容器的 6379 端口映射到 主机的 6379 端口, -v /usr/mydata/redis/conf/redis.conf:/etc/redis/redis.conf 挂载 redis 的配置文件到主机的指定位置 -v /usr/mydata/redis/conf/data:/data 挂载 redis 的数据到主机的指定位置 redis-server /etc/redis/redis.conf 表示根据 /etc/redis/redis.conf 配置文件启动。
这个时候启动的容器:
[root@xl ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f8aaa34220fb redis "docker-entrypoint.s…" About a minute ago Exited (1) About a minute ago redis
41b5362ddc5b nginx "/docker-entrypoint.…" 14 minutes ago Up 14 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
发现现在是成功的启动了redis 和nginx 两个容器
这里redis我运行的时候都是采用的默认配置文件,在控制台关闭后进程就关闭了,我们这里需要先关闭这个容器,再指定配置文件后重新启动
docker container rm [容器名]
[root@xl ~]# docker container rm redis
redis
[root@xl ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
41b5362ddc5b nginx "/docker-entrypoint.…" 18 minutes ago Up 18 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
指定配置文件后,重新启动redis
[root@xl ~]# docker run -p 6379:6379 --name redis -v /usr/mydata/redis/conf/redis.conf:/etc/redis/redis.conf -v /usr/mydata/redis/conf/data:/data -d redis redis-server /etc/redis/redis.conf
8df69b3f3aa5e2d759d0a5f7f3b2f92866d343fc6fff49eadba5ca4b1cbe0b92
[root@xl ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8df69b3f3aa5 redis "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis
41b5362ddc5b nginx "/docker-entrypoint.…" 20 minutes ago Up 20 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
接下来 ,进入容器:
[root@xl ~]# docker exec -it redis /bin/bash
客户端链接redis
[root@xl ~]# docker exec -it redis redis-cli
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>
===================================
5.docker安装jdk
查找jdk
[root@xl ~]# docker search jdk
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
primetoninc/jdk Oracle jdk 1.8, 1.7 23 [OK]
ascdc/jdk8 jdk8 15 [OK]
codenvy/jdk8_maven3_tomcat8 JDK 8, Maven 3, Tomcat 8 9 [OK]
ringcentral/jdk an alpine Linux image included glibc and Ora… 8
codenvy/jdk7_tomcat7 Dockerfile https://github.com/codenvy/docker… 8
gmaslowski/jdk Oracle JDK8 6
openkbs/jdk-mvn-py3 Java 8/11 OpenJDK + Maven + Python 3+ pip +… 6 [OK]
jdkato/vale The official Docker image for Vale. 4
codenvy/jdk7 Dockerfile https://github.com/codenvy/docker… 3
codenvy/jdk7_vnc Dockerfile https://github.com/codenvy/docker… 3
openkbs/jdk11-mvn-py3 Java JDK 11 + Maven 3 + Python 3 + Gradle 4 3 [OK]
codenvy/jdk7_jboss7 Dockerfile https://github.com/codenvy/docker… 2
codenvy/jdk7_jetty9 Dockerfile https://github.com/codenvy/docker… 2
openkbs/jdk-mvn-py Java JDK 8 + Maven 3 + Python 2 1 [OK]
andonescu/jdk-8-node-docker-gcp jdk8 node docker gcp 1
payneteasy/jdk-8 Java 8 for using with gitlab-ci 1 [OK]
ukhydrographicoffice/jdk8-python36 Build image that contains bash, jdk 8 and py… 0
uquote/jdk8-tomee1.7.3-plume Apache Tomee Plume with Oracle JDK 8 on Cent… 0
dwetzel/jdk-ant JDK8 + ANT 0 [OK]
ping2ravi/jdk All Java/JDK Versions 0 [OK]
payneteasy/jdk-8-js jdk-8, maven and javascript 0 [OK]
exoplatform/jdk JDK image 0
king019/jdk jdk 0
guligo/jdk-maven-ant Tool stack consisting of Oracle JDK, Maven a… 0 [OK]
wealthsimple/jdk 0
选择其中一个进行安装:
[root@xl ~]# docker pull gmaslowski/jdk
Using default tag: latest
latest: Pulling from gmaslowski/jdk
ff3a5c916c92: Pull complete
c49befa8d063: Pull complete
04e43eaaf859: Pull complete
cbf302ae34ff: Pull complete
ddb4a6e345a5: Pull complete
Digest: sha256:1e3211e1888168d7123c74ad457ea3aa24acba046bfc3c9a87100b46c05a87ab
Status: Downloaded newer image for gmaslowski/jdk:latest
docker.io/gmaslowski/jdk:latest
查看安装是否成功:
[root@xl ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 739b59b96069 5 days ago 105MB
nginx latest 62d49f9bab67 12 days ago 133MB
gmaslowski/jdk latest 390b58b1be42 2 years ago 174MB
ascdc/jdk8 latest 9f04bbc44406 2 years ago 644MB
运行容器jdk1.8
[root@xl ~]# docker run -di --name=jdk1.8 gmaslowski/jdk
2c41e4607ad4a1d1014bad6a1dcad163dfae974677ece3ee375447a3e2d856e2
进入容器,查询jdk 版本:
[root@xl ~]# docker exec -it jdk1.8 /bin/sh
/ # java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)
===================================
6.docker安装rabbitmq
查找 rabbitmq
下载指定版本的rabbitmq
[root@xl ~]# docker pull rabbitmq:3.6.15
3.6.15: Pulling from library/rabbitmq
f2aa67a397c4: Pull complete
f062288ad968: Pull complete
8b9469379b84: Pull complete
5b66af38c756: Pull complete
2349eb3352c4: Pull complete
d7fb0dd6e32f: Pull complete
869ba3a0a942: Pull complete
b7ac6c7140d2: Pull complete
dc5d9eda274c: Pull complete
4b48a2eebbeb: Pull complete
8a009b580bbb: Pull complete
Digest: sha256:f5f131a0addde2cd04c88a6feda63c6f1b291fdfc43502b0db4b4e17b43123e9
Status: Downloaded newer image for rabbitmq:3.6.15
docker.io/library/rabbitmq:3.6.15
安装rabbitmq 。因为没有指定版本,就又下载了最新的版本【囧】
重新指定版本安装
参考: