[Centos]Docker卸载/安装&常用命令

官方文档:https://docs.docker.com/engine/install/centos/

1 卸载&安装

1.1 卸载旧版本

[root@centos704 ~]# yum list installed|grep docker
containerd.io.x86_64            1.6.33-3.1.el7                 @docker-ce-stable
docker-buildx-plugin.x86_64     0.14.1-1.el7                   @docker-ce-stable
docker-ce.x86_64                3:26.1.4-1.el7                 @docker-ce-stable
docker-ce-cli.x86_64            1:26.1.4-1.el7                 @docker-ce-stable
docker-ce-rootless-extras.x86_64
                                26.1.4-1.el7                   @docker-ce-stable
docker-compose-plugin.x86_64    2.27.1-1.el7                   @docker-ce-stable
[root@centos704 ~]# 
yum remove docker*
yum remove containerd.io.x86_64

1.2 配置docker yum源

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

1.3 安装最新版本docker

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

1.4 启动docker

sudo systemctl start docker

1.5 允许开机启动

systemctl enable docker

1.6 添加镜像加速

目前国内很多镜像源都停止服务了,会碰到TLS handshake timeout的问题。例如腾讯、网易、上海交大的加速在我这个环境都不能成功拉取,阿里云的个人专属加速地址可以成功,但是目前阿里云不同步docker hub了,镜像都是老版本。下面几个是临时找到的,希望能存活久一些。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://docker.nju.edu.cn",
        "https://dockerproxy.com"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2 命令

2.1 信息

查看版本

docker version

查看详细信息

docker info

2.2 镜像

docker image --help

检索

docker search
docker search nginx

拉取

docker pull
docker pull nginx
docker pull nginx:1.26.0

列出本地镜像

docker images

删除指定ID的镜像

docker rmi e784f4560448
docker rmi nginx:latest

提交镜像

docker commit --help
docker commit -m "update index.html" mynginx mynginx:v1.0

保存镜像

docker save --help
docker save -o mynginx.tar mynginx:v1.0

加载镜像

docker load --help
docker load -i mynginx.tar

登录

docker login

添加镜像别名

docker tag --help
docker tag mynginx:v1.0 zhangbe1hai/mynginx:v1.0

推送

docker push zhangbe1hai/mynginx:v1.0

2.3 容器

运行一个新容器

docker run --help
docker run nginx

后台启动

docker run -d nginx

设置容器名

docker run --name mynginx nginx

端口映射

docker run -p 80:80 nginx

查看运行中的容器

docker ps

查看所有容器

docker ps -a

启动已停止的容器

docker start 592

停止容器

docker stop keen_blackwell

重启容器

docker restart 592

查看容器状态

docker stats 592

查看容器的细节

docker inspect a33

查看容器日志

docker logs 592

删除容器

docker rm 592
docker rm -f 592

批量删除容器

docker rm -f $(docker ps -aq)

交互模式进入容器,使用bash

docker exec -it mynginx /bin/bash
docker exec -it mynginx bash

退出容器

exit

2.4 存储

2.4.1 目录挂载
docker run -v /opt/files/nginxhtml:/usr/share/nginx/html nginx

外部没有目录会自动创建

docker run -d --name mynginx -p 80:80 -v /opt/files/nginxhtml:/usr/share/nginx/html nginx

也可以挂载文件

2.4.2 卷映射
docker run -d -p 81:80 -v ngconfig:/etc/nginx/ -v /opt/files/nginxhtml:/usr/share/nginx/html --name nginx_01 nginx

列出所有卷

docker volume ls

创建一个卷

docker volume create haha

查看一个卷的详情

docker volume inspect ngconfig
cd /var/lib/docker/volumes/ngconfig/_data

2.5 网络

docker为每个容器分配唯一IP,docker0默认不支持主机域名,创建自定义网络,容器名就是稳定域名。

docker network --help

创建一个自定义网络

docker network create mynet

创建容器时指定加入自定义网络

docker run -d -p 81:80 --name app2 --network mynet nginx

3 docker compose

3.1 命令

上线

docker compose -f compose.yaml up -d 

下线

docker compose -f compose.yaml down
docker compose -f compose.yaml down --rmi all -v

启动

docker compose start x1 x2 x3

停止

docker compose stop x1 x3

扩容

docker compose scale x2=3

3.2 compose.yaml

https://docs.docker.com/compose/compose-file

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:
    container_name: 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:

4 Dockerfile

https://docs.docker.com/reference/dockerfile/

常见指令作用
FROM指定镜像基础环境
RUN运行自定义命令
CMD容器启动命令或参数
LABEL自定义标签
EXPOSE指定暴露端口
ENV环境变量
ADD添加文件到镜像
COPY复制文件到镜像
ENTRYPOINT容器固定启动命令
VOLUME数据卷
USER指定用户和用户组
WORKDIR指定默认工作目录
ARG指定构建参数
FROM openjdk:17


LABEL author=lfy

COPY app.jar /app.jar

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]
docker build -f Dockerfile -t myjavaapp:v1.0 .
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值