docker学习笔记(一)

本文详细介绍Docker的安装步骤,包括Ubuntu软件源更新、一键安装、国内镜像源配置及离线安装教程。同时,提供了Docker常用命令,如镜像与容器管理、状态查询及日志查看等,帮助读者快速掌握Docker的基本操作。

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

一、安装教程

1、ubuntu 软件源更新

sudo apt-get update

sudo apt-get upgrade

2、一键安装docker

# 一键安装命令
curl -sSL https://get.docker.com | sh

# 查看安装的docker版本
docker version
docker -v 

# 配置开机启动
sudo systemctl enable docker

# 其他命令
sudo systemctl 【start 启动、stop 停止、restart 重启】 docker

3、docker配置国内镜像源

# 进入
sudo mkdir -p /etc/docker

# 创建 daemon.json
touch daemon.json

# 编辑 daemon.json  输入 
{
  "registry-mirrors": ["https://yxzrazem.mirror.aliyuncs.com"],
  "dns": [
		"8.8.8.8",
		"8.8.4.4"
	],
	"log-driver": "json-file",
	"log-opts": {
		"max-size": "20m",
		"max-file": "3"
	}
}

# 载入配置项
sudo systemctl daemon-reload
sudo systemctl restart docker

# 查看docker 信息
docker info

国内docker加速镜像地址 

  • 科大镜像:https://docker.mirrors.ustc.edu.cn/
  • 网易:https://hub-mirror.c.163.com/
  • 阿里云:https://<你的ID>.mirror.aliyuncs.com
  • 七牛云加速器:https://reg-mirror.qiniu.com

 4、离线安装教程

## 离线安装
1、解压:
tar -zxvf docker-20.10.8.tgz

2、授权为可执行文件
chmod -R 777 docker

3、将docker文件夹复制到 /usr/bin 目录下
cp docker/* /usr/bin/

4、查看版本
sudo docker -v


## 开机自启动docker
sudo systemctl enable docker

若是报错:Authentication is required to manage system service or unit files.或 Failed to enable unit: Unit file docker.service does not exist.
配置这个:

创建docker.service文件(将docker注册为service)
sudo vim /etc/systemd/system/docker.service
 
### 编辑 docker.service文件
 
```

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target

```

1、添加文件权限并启动docker
sudo chmod +x /etc/systemd/system/docker.service 

2、重载unit配置文件
 sudo systemctl daemon-reload 
 
3、设置开机自启Docker服务
 sudo systemctl enable docker.service
 
4、执行开机自启docker
 sudo systemctl enable docker
 
5、启动Docker
 sudo systemctl start docker
 
 
 ## 验证docker 
systemctl status docker   ##  docker有两种状态:active和inactive

docker -v

sudo docker info
 

 

二、运行命令

1、docker的版本与镜像查看

1、查看dockers版本

docker version
docker -v

2、要是有问题重启docker,任意执行下方两条中一个命令

  1) service docker restart
  2) systemctl restart docker.service

3、查看docker中的镜像

docker images

4、查看可以下载的镜像,以redis为例

docker search redis

5、下载需要的镜像,

docker pull [imge name]

6、设置镜像的name和tag

docker tag  [IMAGE ID ]    [name]:[tag]
docker tag  [IMAGE ID ]    java:abc8

7、查看镜像下载后的结果

docker images

8、删除镜像,通过id删除

docker rmi [IMAGE ID ]

9、开机启动

systemctl enable  docker

10、开机禁用

systemctl disable docker

11、查看状态

systemctl status docker 

2、对docker中容器的初步了解

1、查看运行中的容器

docker ps

2、查看所有容器

docker ps -a

3、创建一个随意redis的容器,

docker run -d redis:latest redis-server

4、运行容器

docker start  [ CONTAINER ID ]

5、停止容器运行

docker stop   [ CONTAINER ID ]

强行关闭容器
docker kill   [ CONTAINER ID ]

6、删除容器

docker rm   [ CONTAINER ID ]

7、查看该容器运行情况,这步需要将容器启动后才行

docker exec -ti [ CONTAINER ID ] redis-cli
docker exec -it [ CONTAINER ID ] bash
docker exec -it [ CONTAINER ID ] /bin/bash

8、查看docker运行日志

docker logs [ CONTAINER ID ] 

9、容器的具体信息查看

docker inspect [ CONTAINER ID ] 

10、所有运行容器的实时运行情况

docker stats

3、镜像离线导出导入

1)导出:

docker save [image id] > xxxx.tar

2、导入:

docker load < xxxx.tar

3、标记镜像的名称和标签。有些镜像导入后其【repostory】【tag】可能是 <none>,这时需要我们自定义这两个值

docker tag  [image id]    [自定义repository]:[自定义tag]

三、操作过程中遇到的异常

参看我的" Linux学习笔记(四)  "的内容。

四、容器服务自启动配置

分成两个步骤:1、设置docker开机启动、2、配置容器服务跟随启动

        1.docker自动启动设置:

          systemctl enable docker.service

        2、docker容器自动启动设置

          在创建docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:

                docker run --restart=always

        如果已经启动了则可以使用如下命令:

                docker update --restart=always CONTAINER_ID

 
 --restart=always  # 表示容器退出时,docker会总是自动重启这个容器
​
--restart=on-failure:3  # 表示容器的退出状态码非0(非正常退出),自动重启容器,3是自动重启的次数。超过3此则不重启
​
--restart=no  # 默认值,容器退出时,docker不自动重启容器
​
--restart=unless-stopped  # 表示容器退出时总是重启,但是不考虑docker守护进程运行时就已经停止的容器
 
 

五、容器内存查看与缓存清理

# 查看占用内存

docker system df

# 清除所有不使用的资源,这个命令将会删除所有不使用的镜像、容器和数据卷等资源。

docker system prune
docker system prune -f

# 清除所有未被标记的镜像(没有运行容器的镜像)

docker image prune
docker image prune -a

# 清除所有未被使用的数据卷

docker volume prune 

# 清除所有未被使用的网络

docker network prune

# 删除未被使用的容器

docker container prune

# 删除所有悬空的容器

docker container prune --filter status=exited

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值