1.查看docker安装目录
whereis docker
docker: /usr/bin/docker /etc/docker /usr/libexec/docker /usr/share/man/man1/docker.1.gz
2.查询运行文件所在路径
which docker
/usr/bin/docker
3.启动docker
Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!
启动docker前,一定要关闭防火墙后!!
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
#查看是否关闭防火墙
systemctl status firewalld
4.通过命令启动docker:
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
systemctl status docker # 查看docker启动状态
systemctl enable docker # 开机启动docker
docker -v 查看docker版本
5.配置镜像加速
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
##创建文件夹
sudo mkdir -p /etc/docker
> ##在文件夹内新建一个daemon.json文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
}
EOF
##重新加载文件
sudo systemctl daemon-reload
##重启docker
sudo systemctl restart docker
6.Docker镜像命令
查看自己服务器中docker 镜像列表
docker images
搜索镜像
docker search redis
拉取镜像
docker pull 镜像名
docker pull 镜像名:tag
不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
保存镜像
docker save 镜像名/镜像ID -o 镜像保存的名字 镜像保存的tag
例如:docker save -o redis.tar redis:latest
删除镜像
docker rmi -f 镜像名/镜像ID
docker rmi -f 镜像名:5.0
删除全部镜像
docker rmi `docker images -q`
加载镜像
docker load -i 镜像保存文件位置
例如:docker load -i redis.tar
7.卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
8.安装
首先需要大家虚拟机联网,安装yum工具
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
然后更新本地镜像源:
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
然后输入命令:
yum install -y docker-ce
# 1、yum包更新到最新
yum update
#2、安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum insta1l -y yum-utils device-mapper-persistent-data lvm2
#3、设置yum源
yum-config-manager --add-repo https: // download.docker. com/linux/centos/docker-ce.repo
#4、安装docker ,出现输入的界面都按y
yum install -y docker-ce
#5、查看docker版本,验证是否验证成功
docker -v
9.容器相关命令
查看容器
docker ps 查看正在运行的容器
docker ps -a查看全部状态的容器
docker ps -aq
创建容器
docker run -it --name=grafana grafana/grafana
-i 一直运行
-t输入终端
--name=c1
-it 创建后进入容器,退出就关闭了
docker run -id --name=grafana grafana/grafana
-id 创建完不会进入容器内部
要用命令进去
进入容器
docker exec -it grafana /bin/bash
退出容器
exit
启动容器
docker start grafana
停止容器
docker stop grafana
删除容器
docker rm grafana
docker rm `docker ps -aq ` 删除所有容器
查看容器信息
docker inspect grafana
10.docker数据卷
数据卷
概念:宿主机中的一个目录或者文件
当容器目录和数据卷目录绑定后,对方的修改会立即同步
一个数据卷可以被多个容器同时挂载
一个容器也可以挂载多个数据卷
数据卷的作用:
容器数据持久化
外部机器和容器间接通信
容器之间数据交换
配置数据卷:
创建启动容器时,使用-v参数 设置数据卷
docker run ... -v 宿主机目录(文件):容器内目录(文件)
注意:
目录必须是绝对路径
如果目录不存在,会自动创建
可以挂载多个数据卷
docker run -id --name=grafana1 -v /root/data:/root/data_container grafana/grafana /bin/bash
1.持久性
docker run -it --name=grafana5 -v /root/data1:/root/data1_container grafana/grafana /bin/bash
docker run -it --name=redis -v /root/data:/root/data_container redis /bin/bash
删除容器,宿主机里的目录里的文件还存在
在重新建一个容器
docker run -it --name=redis -v ~/data:/root/data_container redis /bin/bash
只有宿主机 ~可以写,代表root 但是容器里只能写root
到data_container 目录挂载上 里面的文件还在
2.
挂两个容器
docker run -it --name=c1 -v ~/data2:/root/data_container2 -v ~/data3:/root/data_container3 centos /bin/bash
docker删除后,在容器中产生的数据还在吗?
不在
docker和外部容器可以直接交换文件吗?
不可以
容器之间想要进行数据交互?
容器里面用不能用ll
需要执行命令
echo "alias ll='ls -rltha'" >> ~/.bashrc && source ~/.bashrc