1.什么是docker,有什么作用
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
2.docker的基本使用命令
2.1 docker 的安装和卸载
先卸载
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装工具
yum install -y yum-utils
设置阿里镜像路径,官方的比较慢
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装最新版Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
2.2 centos 使用docker的命令
#### centos启动docker
systemctl start docker
#### 查看docker状态
systemctl status docker
#### 停止docker
systemctl stop docekr
2.3docker的镜像命令
#### 查看docker的镜像文件列表
docker images
#### 删除docker的镜像文件
docker rmi 镜像名字 docker rmi mysql
docker rmi -f 镜像名字 #(强制删除) docker rmi -f mysql
##### 查看某个镜像文件的在仓库里的stars大于30的镜像
docker search -f stars=30 mysql
##### 去https://hub.docker.com/官方镜像仓库搜索镜像,tag里找到想要的然后拉取
docker pull mysql:5.7.39
2.4docker 容器的命令使用
# docker 运行 mysql -v是挂载 -d 是以后台方式运行 - e设置 mysql root用户和密码 -p是端口映射
docker run --name dockerMysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/data: /var/lib/mysql mysql:5.7.39
docker ps # 查看容器运行情况
docker exec -it dockerMysql bash # 进入mysql内部
docker exec -it (name or id) /bin/bash # 进入容器内部
docker start dockerMysql #启动容器
docker stop dockerMysql # 关闭容器
docker restart dockerMysql # 重启容器
docker rm -f dockerMysql # 强制删除容器
可能会出现的情况:: listen tcp4 0.0.0.0:3306: bind: address already in use.(端口被占用)
ps -ef|grep 3306 # 查看端口或者 lsof -i:3306
kill -9 pid
运行centos7容器
docker run --name mycentos -itd centos:centos7
docker exec -it mycentos /bin/bash #进入centos内部
2.5docker的文件 挂载
所谓挂载相当宿主机和容器 挂载目录中的文件保持一样,如果容器突然被删除,宿主机里的文件不会消失。
# 将宿主机的文件拷贝到容器内
docker cp /nikaboy/a.txt mycentos:/nikaboy/ #注意:后面不能有空格
# 将容器里文件拷贝到宿主机
docker cp f5dec224a59d:/usr/nikaboy/a.txt /nikaboy #注意:后面不能有空格
# 将宿主机/nikaboy目录挂载到centos中的/nikaboy
docker run -di -v /nikaboy:/nikaboy --name=nikaboyVolume centos:centos7
匿名挂载
# 匿名挂载的话就是没有写容器外对应的路径,只写容器内路径
docker run -di -v /nikaboy --name=nikaboy centos:centos7 #匿名挂载
docker volume ls # 查看匿名挂载随机生成的卷名
## 73fd7ef66970fd477e37292a0d9eb2282cc9bc4b47ae406e12db02cd32d8306b