docker安装与使用

本文详细介绍了如何在CentOS系统中安装Docker,包括删除旧版、配置阿里云Yum源、安装步骤、启动与查看版本,以及生产环境下的配置如加速器设置。还涵盖了docker命令的使用,如镜像操作(查找、拉取、推送、删除等)和容器操作(运行、查看、管理等)。
摘要由CSDN通过智能技术生成

目录

一、docker安装

1、删除已安装的Docker

2、配置阿里云Docker Yum源

3、安装docker

4、启动docker

5、查看docker版本

6、查看docker的运行状态

7.可能出现的错误及解决方法

二、生产docker的环境配置

1、配置加速器

三、登入登出docker hub

四、docke命令

A、镜像的操作

B、容器的操作


一、docker安装

1、删除已安装的Docker

 yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

2、配置阿里云Docker Yum源

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 git
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

3、安装docker

   ①查看docker版本

[root@localhost ~]# yum list docker-ce --showduplicates
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

   ②安装较旧版本(比如Docker 17.03.2) :
        需要指定完整的rpm包的包名,并且加上--setopt=obsoletes=0 参数:

yum install -y --setopt=obsoletes=0 \
        docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
        docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

   ③安装Docker新版本(比如Docker 18.03.0):
        加上rpm包名的版本号部分或不加都可以:

 yum install docker-ce-18.03.0.ce  -y
        或者
 yum install docker-ce -y
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

4、启动docker

systemctl enable docker
systemctl start docker
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

5、查看docker版本

[root@localhost ~]# docker -v
Docker version 25.0.3, build 4debf41
[root@localhost ~]# docker version
Client: Docker Engine - Community
 Version:           25.0.3
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        4debf41
 Built:             Tue Feb  6 21:17:10 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          25.0.3
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       f417435
  Built:            Tue Feb  6 21:16:08 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[root@localhost ~]# 
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

6、查看docker的运行状态

[root@localhost ~]# docker info
Client: Docker Engine - Community
 Version:    25.0.3
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.12.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.24.6
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 25.0.3
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
 Kernel Version: 3.10.0-1160.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.682GiB
 Name: localhost.localdomain
 ID: 57996705-71e3-4323-9684-ed76b305d8bf
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

7.可能出现的错误及解决方法

报错1:
    docker info的时候报如下错误
    bridge-nf-call-iptables is disabled

解决1:
    追加如下配置,然后重启系统
    # vim /etc/sysctl.conf   
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-arptables = 1

问题2:
    虚拟机ping百度也能ping通,但是需要等好几秒才出结果,关键是下载镜像一直报错如下
    # docker pull daocloud.io/library/nginx
    Using default tag: latest
    Error response from daemon: Get https://daocloud.io/v2/: dial tcp: lookup daocloud.io on 192.168.1.2:53: read udp   192.168.1.189:41335->192.168.1.2:53: i/o timeout

解决2:
    我的虚拟机用的网关和dns都是虚拟机自己的.1或者.2,把DNS改成8.8.8.8问题就解决了,ping百度也秒出结果
    # vim /etc/resolv.conf
    nameserver 8.8.8.8

修改docker数据存放位置
vim /usr/lib/systemd/system/docker.service
	--data-root=/docker-data
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

二、生产docker的环境配置

1、配置加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://pilvpemn.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
#注意:一定注意编码问题,出现错误---查看命令:journalctl -amu docker 即可发现错误
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

三、登入登出docker hub

login     Register or log in to a Docker registry
登录到自己的Docker register,需有Docker Hub的注册账号
      # docker login
      Username: test
      Password: 
      Email: xxxx@foxmail.com
      WARNING: login credentials saved in /root/.docker/config.json
      Login Succeeded

logout    Log out from a Docker registry
退出登录
      # docker logout
      Remove login credentials for https://index.docker.io/v1/

注:推送镜像库到私有源(可注册 docker 官方账户,推送到官方自有账户)
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

四、docke命令

A、镜像的操作

1.镜像的查找

-f stats=100 指定星级

docker search iname

2.拉取镜像

docker pull iname

3. 推送镜像

docker push iname

4.查看镜像

docker images

docker image list

docker image ls

5.查看所有镜像ID

 docker images -q

6.修改名称

 docker tag oldname newname

7.查看镜像的详细信息

docker images inspect iname 

8.删除镜像

 docker rmi iname

B、容器的操作

1.运行容器

docker run

-i 捕获标准输入输出

-t 分配一个虚拟终端

-d 后台运行

--name 自定义容器名字

-e 环境变量

-p 映射端口 指定端口

-P 映射端口 随机映射

-v 数据持久化  

2. 查看容器

docker ps

-a  查看所有容器

-q  查看容器ID

3.查看容器详细信息

 docker inspect 【iname|cid】

4. 删除容器

docker rm【iname|cid】

-f   强制删除

5.容器的启动与停止

docker start  

docker stop

docker restart

6. 暂停容器

docker pause

7.激活容器

 docker unpause

8.杀死容器

 docker kill

9 .进入容器

docker exec -it [cname|cid] /bin/bash

docker attach 如果想要进入容器有命令行,要在run的时候加一个/bin/bash  退出不停止 ctrl p q

10. 查看容器的日志

docker logs [cname|cid]

11.复制文件

docker cp cname:/path hostpath     容器到主机

docker cp hostpath cname:/path      主机到容器

12.重命名

 docker rename oldname newname

13.查看容器 资源占用情况

docker stats

14.查看容器中的进程

 docker top 【cname|cid】

15.检测容器发生了什么

docker events 

16.检测容器停止后的返回值

docker wait 

17.检测主机被映射的端口

 docker port

Docker是一种开源的容器化平台,它可以帮助开发者将应用程序及其依赖项打包成一个独立的容器,以便在不同的环境中进行部署和运行。下面是Docker安装使用步骤: 1. 安装Docker:首先,你需要在你的操作系统上安装DockerDocker支持多个操作系统,包括Windows、macOS和Linux。你可以访问Docker官方网站(https://www.docker.com/)下载并安装适合你操作系统的Docker版本。 2. 配置Docker安装完成后,你需要配置Docker。在Windows和macOS上,Docker会自动启动,并在系统托盘中显示一个图标。在Linux上,你可能需要手动启动Docker服务。 3. 验证安装:打开终端或命令提示符,运行以下命令来验证Docker是否成功安装: ``` docker version ``` 4. 获取镜像:Docker使用镜像来创建容器。你可以从Docker Hub(https://hub.docker.com/)上获取各种镜像,也可以自己构建镜像。例如,你可以使用以下命令获取一个名为"ubuntu"的Ubuntu镜像: ``` docker pull ubuntu ``` 5. 运行容器使用以下命令来运行一个容器: ``` docker run -it ubuntu ``` 这将在一个交互式终端中启动一个基于Ubuntu镜像的容器。 6. 使用容器:一旦容器启动,你可以在容器内执行各种操作,就像在一个独立的虚拟机中一样。你可以安装软件、运行命令等。当你退出容器时,容器将停止运行。 7. 管理容器:你可以使用各种Docker命令来管理容器。例如,使用以下命令列出正在运行的容器: ``` docker ps ``` 使用以下命令停止一个容器: ``` docker stop <container_id> ``` 8. 清理资源:当你不再需要某个容器时,可以使用以下命令删除它: ``` docker rm <container_id> ``` 如果你不再需要某个镜像,可以使用以下命令删除它: ``` docker rmi <image_id> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值