docker安装

该篇博客详细介绍了如何在Linux系统中安装Docker,包括卸载旧版本、安装依赖、设置镜像源、安装Docker并启动,以及验证安装。此外,还展示了如何通过Docker安装和配置MySQL、Redis、Tomcat、Nginx等服务,并提供了容器化应用的实例。同时,提到了使用Dockerfile创建镜像的方法,以及基于CentOS7的基础环境配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值