Docker安装

Docker官方文档

CentOS下安装

更新yum包

1
sudo yum update

安装需要的软件包

1
yum install -y yum-utils device-mapper-persistent-data lvm2

卸载旧版本

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

yum安装

1
sudo yum install -y yum-utils

配置镜像加速

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

安装docker engine

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

启动docker

1
sudo systemctl start docker

测试

1
sudo docker run hello-world

Docker常用命令

帮助命令

1
2
3
docker version #docker版本信息
docker info #详细信息
docker 命令 --help #万能命令

docker官方参考文档:https://docs.docker.com/reference/

镜像命令

docker images查看所有本地主机上的镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@iZm5e1u64hvs1mdn0hhqztZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 11 months ago 13.3kB

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

# 可选项
Options:
-a, --all 列出的所有的镜像
-q, --quiet 只显示镜像的id

docker search搜索镜像

1
docker search 要搜索的镜像

docker pull下载mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@iZm5e1u64hvs1mdn0hhqztZ ~]# docker pull mysql
Using default tag: latest #如果不写tag,默认latest,最后一个版本
latest: Pulling from library/mysql
852e50cd189d: Pull complete #分层下载,docker images的核心 联合文件系统
29969ddb0ffb: Pull complete
a43f41a44c48: Pull complete
5cdd802543a3: Pull complete
b79b040de953: Pull complete
938c64119969: Pull complete
7689ec51a0d9: Pull complete
a880ba7c411f: Pull complete
984f656ec6ca: Pull complete
9f497bce458a: Pull complete
b9940f97694b: Pull complete
2f069358dc96: Pull complete
Digest: sha256:4bb2e81a40e9d0d59bd8e3dc2ba5e1f2197696f6de39a91e90798dd27299b093#签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest# 真实地址

# 指定版本下载
docker pull mysql:5.7

docker rmi删除镜像

容器命令

说明:有了镜像才能创建容器

1
docker pull centos

新建容器并启动

1
2
3
4
5
6
7
8
9
docker run [可选参数] image

# 参数说明
--name="Name" 容器名字
-d 后台方式运行
-it 交互方式运行,进入容器查看内容
-p 指定容器端口
-p 主机端口:容器端口(常用)
-P 随机指定端口(大写P)

测试

1
2
3
4
[root@iZm5e1u64hvs1mdn0hhqztZ ~]# docker run -it centos
[root@e85283b1056e /]#

# 容器内就是一个centos系统

退出容器

1
2
exit #关闭并退出 从容器中退回主机
Ctrl+p+q #容器不停止退出

列出所有的运行的容器

1
2
3
4
5
docker ps

-a #列出当前正在运行的容器+带出历史运行过的容器
-n=? #显示最近创建的容器
-q #只显示容器的编号

删除容器

1
docker rm 容器id

启动和停止容器的操作

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

常用其他命令

后台启动容器

1
2
3
4
# 命令 docker run -d 镜名

# 问题,发现centos停止了
# 常见的坑:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会停止

查看日志

1
docker logs --help

查看容器中的进程

1
docker top 容器id

进入当前正在运行的容器

1
docker exec -it 容器id bashShell