侧边栏壁纸
博主头像
程序员の小站博主等级

行动起来,活在当下

  • 累计撰写 51 篇文章
  • 累计创建 35 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Centos安装Docker

Administrator
2024-09-27 / 0 评论 / 0 点赞 / 2 阅读 / 8513 字
温馨提示:
本文最后更新于 2024-09-27,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 什么是Docker

虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整运行的环境,容器之间相互隔离

2 . docker仓库

3. centos的Docker安装

  1. 卸载旧版本
sudo yum remove docker \ 
			 docker-client \
			 docker-client-latest \ 
			 docker-common \ 
			 docker-latest \ 
			 docker-latest-logrotate \ 
			 docker-logrotate \ 
			 docker-engine
  1. 安装docker所需要的依赖包
sudo yum install -y yum-utils
  1. 设置docker仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装docker
sudo yum install \
		docker-ce \
		docker-ce-cli \
		containerd.io \
		docker-buildx-plugin \
		docker-compose-plugin
  1. 启动docker:sudo systemctl start docker。或者使用命令systemctl enable docker --now启动docker并设置开机启动
  2. 查看docker版本:docker -v
  3. 设置开机启动:systemctl enable docker

4. 配置镜像加速

可以参考配置地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
配置命令

sudo mkdir -p /etc/docker 
sudo tee /etc/docker/daemon.json <<-'EOF'
 { 
	"registry-mirrors": ["https://xjumdyb0.mirror.aliyuncs.com"]
 }
  EOF 
sudo systemctl daemon-reload 
sudo systemctl restart docker

5. 常用的Docker命令

5.1 命令列表

#查看运行中的容器 
docker ps 
#查看所有容器 
docker ps -a 
#搜索镜像 
docker search nginx 
#下载镜像 
docker pull nginx 
#下载指定版本镜像 
docker pull nginx:1.26.0 
#查看所有镜像 
docker images 
#删除指定id的镜像 
docker rmi e784f4560448 #(需替换成容器的名称或者是ID)

#运行一个新容器 
docker run nginx 
# 后台启动容器 
docker run -d --name mynginx nginx 
# 后台启动并暴露端口 
docker run -d --name mynginx -p 80:80 nginx 
# 进入容器内部 
docker exec -it mynginx /bin/bash
#停止容器 
docker stop keen_blackwell 
#启动容器 
docker start 592 #(592的位置需要替换成容易的名称或者容器的ID)
#重启容器 
docker restart 592 #(592的位置需要替换成容易的名称或者容器的ID)
#查看容器资源占用情况 
docker stats 592 #(592的位置需要替换成容易的名称或者容器的ID)
#查看容器日志 
docker logs 592 #(592的位置需要替换成容易的名称或者容器的ID)
#删除指定容器 
docker rm 592 #(592的位置需要替换成容易的名称或者容器的ID)
#强制删除指定容器 
docker rm -f 592 #(592的位置需要替换成容易的名称或者容器的ID)

# 提交容器变化打成一个新的镜像 
docker commit -m "update index.html" mynginx mynginx:v1.0 
# 保存镜像为指定文件 
docker save -o mynginx.tar mynginx:v1.0 
# 删除多个镜像 
docker rmi bde7d154a67f 94543a6c1aef   #(需替换成容器的名称或者是ID)
# 加载镜像 
docker load -i mynginx.tar

# 登录 
docker hub docker login 
# 重新给镜像打标签 
docker tag mynginx:v1.0 leifengyang/mynginx:v1.0 
# 推送镜像 
docker push leifengyang/mynginx:v1.0

5.2 操作命令常用参数

  • doker pull 镜像名:版本号 下载指定版本号的镜像,如果没有后边的:版本号就是下载最新的
  • docker images 查看下载的所有的镜像
  • docker rmi 镜像名[:版本号] 删除指定的镜像
  • docker rmi 镜像ID 根据镜像的ID进行删除镜像
  • docker run --help 对于运行run指令参数的说明
  • docker run [OPTIONS] IMAGE [COMMAND] [ARG...]启动docker镜像
  • doker ps 查看正在运行的容器
  • docker stop 容器ID 停止运行的docker容器
  • docker rm 容器的名字或者ID 删除已经停止的容器
  • docker start 容器的名字或者ID 启动docker容器
  • docker update 容器名字或者容器ID [--options] 更新容器启动的参数
  • docker rm -f 容器名字或者容器ID 强制删除正在运行中的容器
  • docker exec -it 容器id /bin/bash 以交互模式进入容器的控制台
  • docker commit [options] 容器 [镜像名称[:版本号]] 提交容器
  • docker logs 容器名或者ID访问容器的日志
  • docker save [options] image [image] 镜像保存
    • docker save -o guigu.tar 镜像名称:版本号 把镜像保存成一个物理文件
  • docker load -i 压缩包名称 加载镜像
  • 推送镜像到远程仓库
    • docker tag 镜像名称 仓库名称:版本号 给镜像打一个标签,也就是把旧的镜像名称改成远程仓库需要的新名称
    • docker push 改名称后的镜像名称 推送本地的镜像到远程仓库
  • docker login 登陆
  • docker logout 推送完镜像后推出远程仓库
  • docker --name=mynginx -d --restart=always -p80:80 nginx
    • –name 指定容器运行的名称
    • -d 后台运行
    • –restart 开机自启
    • -p 映射端口
    • -v 数据挂载 -v 主机的目录:容器的目录 注意外部的挂载的目录要有对应的文件,不能为空

6. 存储

两种方式,注意区分:

  • 目录挂载: -v /app/nghtml:/usr/share/nginx/html
  • 卷映射:-v ngconf:/etc/nginx

7. 网络

创建自定义网络,实现主机名作为稳定域名访问。因为docker自定义的网络是不能在docker的各个docker主机之间进行通信的

#自定义网络 
docker network create 网络名称

8. Docker Compose

8.1 docker-compose的优点

  1. 增量更新
    • 修改Docker Compose 文件。重新启动应用。只会触发修改项的重新启动
  2. 数据不删除
    • 默认就算down了容器,所有挂载的卷不会被移除。比较安全

8.2 docker-compose.yml文件

name: myblog
services:
  mysql:
    container_name: mysql
    image: mysql:8.0
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=wordpress
    volumes:
      - mysql-data:/var/lib/mysql
      - /app/myconf:/etc/mysql/conf.d
    restart: always
    networks:
      - blog

  wordpress:
    image: wordpress
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: 123456
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress:/var/www/html
    restart: always
    networks:
      - blog
    depends_on:
      - mysql

volumes:
  mysql-data:
  wordpress:

networks:
  blog:

9. Dockerfile文件

# from 是配置基础环境,依赖的基础环境是哪些
FROM openjdk:17
# 镜像的标签
LABEL author=leifengyang
# 把需要的文件复制到docker的小型linuxz中的根目录下
COPY app.jar /app.jar
# 暴漏端口
EXPOSE 8080
# 镜像的启动命令
ENTRYPOINT ["java","-jar","/app.jar"]

开始打包的命令docker build -t java-demo:v1.0 . 这里需要注意不要落下最后的一个点

0

评论区