0%

Docker快速入门

跟着视频和教程先敲一下代码.
先购买一台服务器 临时选择的阿里云CentOS7.8 按量付费

前言:

视频[狂神说Docker]:https://www.bilibili.com/video/BV1og4y1q7M4?p=1
笔记[CSDN网友]:Docker快速入门总结笔记

1:安装Docker

1.1先卸载.

1
2
3
4
5
6
7
8
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

1.2下载需要的安装包:

1
yum install -y yum-utils

1.3 设置镜像仓库

1
2
3
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.4 更新索引

1
yum makecache fast

1.5 安装docker

docker-ce 是社区版,docker-ee 企业版

1
yum install docker-ce docker-ce-cli containerd.io

1.6 启动Docker

1
2
3
4
# 开启docker服务
systemctl start docker
# 查看当前版本号,是否启动成功
docker version

1.7 测试镜像 Hello-World

1
docker run hello-world

出现 Hello from Docker! 即为成功!

1.8 查看下载的镜像

1
docker images

1.9 Docker卸载

1
2
3
4
# 1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 2. 删除资源 . /var/lib/docker是docker的默认工作路径
rm -rf /var/lib/docker

1.10 阿里云镜像加速

阿里云、搜索、容器镜像服务、控制台、镜像工具、镜像加速器、CentO S、复制代码

代码大概如下:

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://m761ys3y.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2常用命令

2.1基础命令

官方文档:https://docs.docker.com/engine/reference/commandline/docker/

1
2
3
4
docker version          #查看docker的版本信息
docker info #查看docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令(可查看可选的参数)
docker COMMAND --help

2.2镜像命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 10 months ago 13.3kB

REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的ID
CREATED 镜像的创建时间
SIZE 镜像的大小

-a 显示所有--all
-q 只显示镜像ID
-aq 显示所有的镜像ID

2.3搜索镜像

Docker镜像仓库:https://hub.docker.com/

1
2
3
4
5
6
7
8
9
10
11
12
13
# search 搜索命令
docker search mysql

# 查看一下系统提供的帮助
docker search --help

-f, --filter filter Filter output based on conditions provided
--format string Pretty-print search using a Go template
--limit int Max number of search results (default 25)
--no-trunc Don't truncate output

# 测试一下过滤
docker search mysql --filter=STARS=3000

2.4下载镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# pull命令下载镜像 可指定镜像版本 如 mysql:5.7
docker pull mysql

Using default tag: latest
latest: Pulling from library/mysql
72a69066d2fe: Pull complete
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest

#测试指定版本
docker pull mysql:5.7

5.7: Pulling from library/mysql
72a69066d2fe: Already exists #文件公用
93619dbc5b36: Already exists
99da31dd6142: Already exists
626033c43d70: Already exists
37d5d7efb64e: Already exists
ac563158d721: Already exists
d2ba16033dad: Already exists
0ceb82207cd7: Pull complete #下载依赖
37f2405cae96: Pull complete
e2482e017e53: Pull complete
70deed891d42: Pull complete
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7

2.5删除镜像:

1
2
3
4
5
6
#1.删除指定的镜像id
docker rmi -f 镜像id
#2.删除多个镜像id
docker rmi -f 镜像id 镜像id 镜像id
#3.删除全部的镜像id
docker rmi -f $(docker images -aq)

2.6容器命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 先下载一个容器
docker pull centos
# 运行的参数
--name="名字" 指定容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口
(
-p ip:主机端口:容器端口 配置主机端口映射到容器端口
-p 主机端口:容器端口
-p 容器端口
)
-P 随机指定端口(大写的P)

# 运行并进入容器
docker run -it centos /bin/bash

2.7退出容器:

1
2
#exit 停止并退出容器(后台方式运行则仅退出)
#Ctrl+P+Q 不停止容器退出

2.8列出容器运行记录:

1
2
3
4
5
#docker ps 
# 列出当前正在运行的容器
-a # 列出所有容器的运行记录
-n=? # 显示最近创建的n个容器
-q # 只显示容器的编号

2.9删除容器:

1
2
3
docker rm 容器id                 #删除指定的容器,不能删除正在运行的容器,强制删除使用 rm -f
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器

2.10启动和停止容器:

1
2
3
4
docker start 容器id          #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前运行的容器
docker kill 容器id #强制停止当前容器