安装
- 参考位置:必须按照官网来操作,不然不会是最新的,也会出现各种问题。官方文档
centos下的安装
- 各种命令
安装
根据官方文档进行安装
- 卸载
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
- 安装所需工具
yum install -y yum-utils device-mapper-persistent-data lvm2
- 加入yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装社区版
yum install docker-ce docker-ce-cli containerd.io
# 查看docker版本
docker version
# 启动与查看
systemctl start docker
systemctl status docker
# 设置自启动
systemctl enable docker.service
- docker的镜像地址文件
修改下面文件就可以把docker的默认镜像地址修改
/etc/docker/daemon.json
加入:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}
重新启动 dockerd:
sudo systemctl restart docker
容器
1. 基本使用
- 命令
# 下载镜像
docker pull image:tag
# 查看镜像
docker images
# 运行镜像
docker run -itd imageId/image:tag
关于参数的说明:-it 代表是进行前台交互 -d 代表后台运行
注意:当没有前台进程时候,不加it,光d参数会报错。
# 退出当前的容器
# --name 用来指定容器的名字 -d参数是后台运行的意思
docker run -dit --name centos7.5 imageId/image:tag
# 查询docker容器 -a 代表的是全部
docker ps -a
不加-a
# 进入docker容器 -it代表的是交互,bash和/bin/bash意义一样
docker exec -it containerId/name /bin/bash
# 启动docker容器
docker start containerId/name
# 停止docker容器
docker stop containerId/name
# 只创建,不运行
docker create imageId/image:tag
#删除容器(只是停止运行的)
docker rm containerId/name
# 删除全部(只是停止运行的)
docker container prune
2. 深入使用
- 命令
# 创建自定义镜像 name代表镜像的名字或标签是自定义的内容
docker build -t name Dockerfile路径
# 删除镜像 -f 代表强制删除
docker rmi -f imageId/image:tag
# 创建容器时指定开机自启动
docker run --restart=always imageId/image:tag
# 已经创建的容器开机自启动
docker update --restart=always imageId/image:tag
网络
1. 网络种类
- bridge 桥接网络(默认,最常使用)
- host 主机网络
- overlay 覆盖网络(集群会用到)
- macvlan 网卡虚拟网络
- none 无网络
2. 桥接网络
- 命令
# 创建网络
docker network create bridgeName
# 查看网络
docker network ls
# 移除网络
docker network rm bridgeName
# 使用指定网络创建容器 -p 是绑定端口
docker create --name containerName --network networkName -p 主机端口:容器端口 imageId/image:tag
# 将容器加入到指定的网络
docker network connect networkName containerName
# 查看指定网络的详细信息
docker network inspect networkName
# 将容器从指定网络去掉
docker network disconnect networkName containerName
常用软件
SSH Secure File Transfer Client
一款Linux服务器上传下载的软件(没找到官网)
SSH Secure Shell Client
一款不错的远程linux的工具(没找到官网, 现在用的SecureCRT)
实际使用
- redis的安装
// 拉取镜像
docker pull redis
// 创建镜像,其中-v 表示映射数据卷 --appendonly yes表示开启持久化
docker run --restart=always --name redis5.0 -p 6379:6379 -v //d/docker/redis/data:/data -d redis redis-server --appendonly yes
// 进入redis
docker exec -it redis bash
// 连接本地redis
redis-cli