您的位置:首页 > 娱乐 > 八卦 > [Centos]Docker卸载/安装常用命令

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

2024/12/23 6:22:18 来源:https://blog.csdn.net/weixin_43724577/article/details/139773553  浏览:    关键词:[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_6426.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: mysqlimage: mysql:8.0ports:- "3306:3306"environment:- MYSQL_ROOT_PASSWORD=123456- MYSQL_DATABASE=wordpressvolumes:- mysql-data:/var/lib/mysql- /app/myconf:/etc/mysql/conf.drestart: alwaysnetworks:- blogwordpress:container_name: wordpressimage: wordpressports:- "8080:80"environment:WORDPRESS_DB_HOST: mysqlWORDPRESS_DB_USER: rootWORDPRESS_DB_PASSWORD: 123456WORDPRESS_DB_NAME: wordpressvolumes:- wordpress:/var/www/htmlrestart: alwaysnetworks:- blogdepends_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:17LABEL author=lfyCOPY app.jar /app.jarEXPOSE 8080ENTRYPOINT ["java","-jar","/app.jar"]
docker build -f Dockerfile -t myjavaapp:v1.0 .

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com