docker安装
# 卸载旧版本docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 安装依赖包
yum install -y yum-utils
# 设置远程仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装
yum install docker-ce -y
yum install docker-ce docker-ce-cli containerd.io
# 启动
systemctl start docker
# 查看版本
docker version
# 校验
docker run hello-world
# 要是拉去速度慢,设置国内镜像(配置docker国内镜像 中国科学技术大学)
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
{
"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
#国内镜像源:
https://9cpn8tt6.mirror.aliyuncs.com
http://hub-mirror.c.163.com
https://docker.mirrors.ustc.edu.cn
# 重启服务
systemctl restart docker.servic
docker 安装独立Linux系统
docker run -d --name centos7 --privileged=true centos:7 /usr/sbin/init
docker run -d --name centos7 --privileged=true \
-v /opt/centos01:/opt -p 10000:80 -p 3306:3306 centos:7 /usr/sbin/init
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y vim tree wget net-tools nmap bash-completion firewalld
docker run --privileged -itd \
-p 24:22 -p 8180:80 -p 8280:8080 \
-v /usr/local/docker/centos/home:/home \
-v /usr/local/docker/centos/root:/root \
--name centos7_1 8652b9f0cb4c /usr/sbin/init
#安装openssh
yum install -y openssh-server openssh-clients
#启动openssh
systemctl start sshd
#安装service
yum -y install initscripts #安装基本工具包,如service、ip等命令
#安装常用工具
yum install -y openssh-server vim lrzsz wget gcc-c++ pcre pcre-devel zlib zlib-devel ruby openssl openssl-devel patch bash-completion zlib.i686 libstdc++.i686 lsof unzip zip
#安装passwd命令
yum install passwd
#设置root密码
passwd 命令
。。。。1次密码
。。。。2次确认
#退出容器
exit
容器ip地址是172.17.0.3,服务器地址是10.176.233.24,把Centos容器的22端口映射到了服务器的8888端口,用户名root,密码roothzm
ssh localhost -p 24
docker 安装mysql各个版本
docker安装mysql5.7
docker search mysql
docker pull mysql:8.0
# 进入容器内部
docker exec -it 名称 bash
# 验证OK
docker run -p 3306:3306 --name zkc_mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=A_dminjs#888 \
-d mysql:5.7
docker安装mysql:8.0.23
/usr/local/docker/mysql/conf/my.cnf
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
docker run --restart=always -d -v /usr/local/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/docker/mysql/logs:/logs -v /usr/local/docker/mysql/data:/var/lib/mysql -p 3306:3306 --name zkc_mysql -e MYSQL_ROOT_PASSWORD=A_isinojs#888 mysql:8.0.23
–restart=always 开机启动容器,容器异常自动重启
–restart=on-failure:3 重启失败三次
-d 已守护进程方式启动容器
-p 3306:3306 端口映射
-v /usr/local/docker/mysql/conf:/etc/mysql 配置文件
-e MYSQL_ROOT_PASSWORD=A_dminjs#888 配置数据库密码
docker安装percona:ps-8.0.25-15
docker run --restart=always -d -p 3307:3306 --name zkc_pecona -e MYSQL_ROOT_PASSWORD=A_isinojs#888 percona:ps-8.0.25-15
docker安装 docker可视化工具
docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart always --privileged=true portainer/portainer
docker安装不同版本的tomcat
tomcat8.5/jdk8
docker run -di --name jdk8_tomcat -p 8080:8080 -v /usr/local/tomcat:/usr/local/tomcat/webapps --privileged=true -e TZ=Asia/Shanghai tomcat:8.5-jdk8
tomcat8.5/openjdk8
docker run -di --name jdk8_tomcat -p 8080:8080 -v /usr/local/tomcat:/usr/local/tomcat/webapps --privileged=true tomcat:8.5.69-jdk8-openjdk-buster
tomcat7/jdk1.7
docker run -di --name jenkins_tomcat -p 8080:8080 -v /usr/local/tomcat:/usr/local/tomcat/webapps --privileged=true tomcat:7-jre7
tomcat9.0.52/jdk11
docker run -di --name tomcat9.0.52 -p 8080:8080 -v /usr/local/tomcat:/usr/local/tomcat/webapps --privileged=true tomcat
tomcat9.0.50/openjdk1.8
docker run -di --name jdk8_tomcat -p 8080:8080 -v /usr/local/tomcat:/usr/local/tomcat/webapps --privileged=true tomcat:jdk8-openjdk-slim
docker 安装redis
第一种启动方式
mkdir -p /usr/local/docker/redis/{conf,data}
cd /usr/local/docker/redis/conf/
wget https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf
注释符号 #
1. 注释 bind 127.0.0.1
2. protected-mode yes 修改成 protected-mode no
3. 添加 requirepass yourpassword (注:不添加则可以无密码访问)
注:步骤1和步骤的2目的是为了远程连接redis,如果只需本地访问就无需修改
docker run --restart=always -d --privileged=true -p 6379:6379 \
-v /usr/local/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/data:/data --name redis redis:5.0.7 \
redis-server /etc/redis/redis.conf --appendonly yes
docker run --restart=always -d --privileged=true -p 6379:6379 \
-v /usr/local/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/data:/data --name redis redis:5.0.7 --appendonly yes
第二种启动方式
不需要配置文件
docker run -itd --name xdclass-redis1 -p 6379:6379 \
-v /usr/local/docker/redis/data:/data redis:5.0.7 --requirepass 123456
--restart=always -> 开机启动容器,容器异常自动重启
-d -> 以守护进程的方式启动容器
--privileged=true -> 提升容器内权限
-p 6379:6379 -> 绑定宿主机端口
-v /usr/local/docker/redis/conf/redis.conf:/etc/redis/redis.conf -> 映射配置文件
-v /usr/local/docker/redis/data:/data -> 映射数据目录
--name redis -> 指定容器名称
--appendonly yes -> 开启数据持久化
docker安装nginx
mkdir -p /usr/local/docker/nginx/{conf,conf.d,logs,html}
vim /usr/local/docker/nginx/conf/nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
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;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
vim /usr/local/docker/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
vim /usr/local/docker/nginx/html/index.html
<h1>hello world</h1>
docker run -d --restart=always --name nginx -p 80:80 -v /usr/local/docker/nginx/html:/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 \
-v /usr/local/docker/nginx/conf.d:/etc/nginx/conf.d nginx:1.20
docker安装centos7
docker run -d --name centos7 --privileged=true \
-v /opt/centos7_01:/opt -p 10000:80 -p 3306:3306 centos:7 /usr/sbin/init
安装完成是最小安装,所以需要配置一些基本环境
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y vim tree wget net-tools nmap bash-completion firewalld
dockerfile练习
制作镜像
docker build -t web .
centos7 + jdk8 环境镜像
jdk-8u221-linux-x64.tar.gz 自己上官网下
FROM centos:7
MAINTAINER zkc
WORKDIR /usr/local
RUN mkdir /usr/local/java
ADD jdk-8u221-linux-x64.tar.gz /usr/local/java
ENV JAVA_HOME /usr/local/java/jdk1.8.0_221
ENV PATH $JAVA_HOME/bin:$PATH
.jar程序进项,并用jdk8运行
FROM java:8
MAINTAINER zkc
WORKDIR /opt
ADD springbootTest.jar app.jar
ADD application.properties application.properties
ENV JAVA_OPTS="-Xmx200m"
EXPOSE 8090
CMD ["sh","-c","java $JAVA_OPTS -jar /opt/app.jar --server.port=8090 --spring.config.location=/opt/application.properties"]
centos7+jdk+tomcat镜像
FROM centos:7
MAINTAINER zkc
WORKDIR /opt
RUN mkdir tomcat
ADD jdk-8u221-linux-x64.tar.gz /opt/
ADD tomcat-web-8080 /opt/tomcat
ENV JAVA_HOME /opt/jdk1.8.0_221
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 8080
CMD ["/opt/tomcat/bin/startup.sh","run"]