1、docker安装
1.1 Centos上安装docker
1. 卸载已安装的 docker(防止冲突)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装docker
配置repo环境
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
下载并安装docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3. 启动docker
sudo systemctl start docker
4. 测试docker是否安装成功
sudo docker run hello-world
出现 “hello-world” 表示 docker 安装成功
5. 设置开机自启docker服务
sudo systemctl enable docker
1.2 Ubuntu上安装docker
1. 卸载已安装的docker(防止冲突)
sudo apt-get remove docker docker-engine docker.io containerd runc
2. 安装docker
- 更新软件包
sudo apt update
sudo apt upgrade
- 安装docker依赖
sudo apt-get install ca-certificates curl gnupg lsb-release
- 添加docker官方秘钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- 添加docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
- 安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 设置docker开机自启
sudo systemctl enable docker
2、docker上安装Mysql8
docker run \
-p 3306:3306 \
--name mysql8 \
--restart=always \
--privileged=true \
-v /home/mysql8/log:/var/log/mysql \
-v /home/mysql8/data:/var/lib/mysql \
-v /home/mysql8/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20
docker run \
-p 3306:3306 \ # 指定宿主机端口与容器端口映射关系
--name mysql8 \ # 创建的容器名称
--restart=always \ # 开机自启
--privileged=true \ # 获取宿主机root权限
-v /home/mysql8/log:/var/log/mysql \ # 挂载目录
-v /home/mysql8/data:/var/lib/mysql \ # 挂载目录
-v /home/mysql8/conf:/etc/mysql \ # 挂载目录
-v /etc/localtime:/etc/localtime:ro \ # 同步时钟
-e MYSQL_ROOT_PASSWORD=123456 \ # 指定root用户的密码为123456
-d mysql:8.0.20 # 运行mysql容器
3、docker上安装Redis
docker run
-p 6379:6379 \
--restart=always \
--name redis \
-v /home/redis/redis.conf:/etc/redis/redis.conf \
-v /home/redis/data:/data \
redis-server /etc/redis/redis.conf \
-d redis:latest
docker run
-p 6379:6379 \ # 指定宿主机端口与容器端口映射关系
--restart=always \ # 开机自启
--name redis \ # 创建的容器名称
-v /home/redis/redis.conf:/etc/redis/redis.conf \ # 挂载目录
-v /home/redis/data:/data \ # 挂载目录
redis-server /etc/redis/redis.conf \ # 以配置文件启动redis
-d redis:latest
4、docker上安装Nginx
docker run \
-p 80:80 \
--name nginx \
--restart=always \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
docker run \
-p 80:80 \ # 指定宿主机端口与容器端口映射关系
--name nginx \ # 创建的容器名称
--restart=always \ # 开机自启
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ # 挂载目录
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \ # 挂载目录
-v /home/nginx/log:/var/log/nginx \ # 挂载目录
-v /home/nginx/html:/usr/share/nginx/html \ # 挂载目录
-d nginx:latest # 运行nginx容器
Redis配置文件
user root;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
accept_mutex on;
multi_accept on;
}
http {
include /etc/nginx/mime.types;
include /etc/nginx/conf.d/*.conf;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
server {
listen 80; # 监听的端口
server_name 192.168.107.129; # 要转发到的服务器
location / {
root /usr/share/nginx/html/; # 静态文件位置
try_files $uri $uri/ /index.html;
index index.html index.htm; # 默认访问的文件
}
location /prod-api/ { # 代理转发
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.107.129:8080/;
}
error_page 500 502 503 504 /50x.html; #定义错误页面
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
5、jar打包成docker镜像并运行
5.1 编写Dockerfile文件
# java8运行环境
FROM java:8
# 作者名称
MAINTAINER test
# 切换工作目录
WORKDIR /root/java
# 添加demo-test-1.0.0.jar文件到docker环境内
ADD demo-test-1.0.0.jar /root/java/demo-test-1.0.0.jar
# 暴露端口8080
EXPOSE 8080
# 运行命令
ENTRYPOINT ["nohup","java","-jar","/root/java/demo-test-1.0.0.jar","&"]
5.2 制作docker镜像
将Dockerfile文件和jar包放在同一个目录下执行
docker build -f Dockerfile -t test:1.0.0 . # 命令最后有个 . 点, 不能省略哦
5.3 运行镜像
docker run --name test-d -p 8080:8080 test:1.0.0
本次分享就到此结束啦,大家还想看docker上运行啥容器,打在评论区,小编不定期完善!!!