30

卸载旧版本

$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

查看服务器版本信息

cat /etc/os-release

配置阿里云镜像地址

yum-config-manager --add-repo	http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引

yum makecache fast

配置阿里云加速器

cd /etc/docker
vim daemon.json
{
"registry-mirrors": ["https://lan0m8lu.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://lan0m8lu.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装docker

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

启动docker

systemctl start docker

卸载依赖

yum remove docker-ce docker-ce-cli containerd.io

删除资源

rm -rf /var/lib/docker

docker辅助命令

docker version					显示docker的版本信息
docker info 系统信息,包括镜像和容器的详细信息
docker 命令 --help 帮助命令

docker镜像命令

docker imgaes [-a|-q|-f] 		查看docker所有镜像帮助信息
-a 列出所有镜像
-q 只显示镜像id

docker删除命令
docker rmi -f name|id 删除指定容器
docker rmi -f id id id 删除多个容器
$(docker images -aq) 删除全部容器

docker搜索命令
docker search name
--filter=stars=3000 搜索镜像的收藏数大于3000

docker下载命令
docker pull name[:tag]

docker容器命令

新建容器并启动

docker run [可选参数]	image

#参数说明
--name="name" 容器名称
-d 后台方式启动
-p 指定容器的端口 -p 8080:8080
-p 主机端口:容器端口(常用)
-p ip:主机端口:容器端口
-p 容器端口
容器端口
-it 使用交互方式运行,进入容器
-P 随机指定端口


启动并进入容器

image-20210107151012641

列出所有运行容器  
docker ps 当前运行的容器
-a 当前运行的容器+历史运行的容器
-n=? 显示最近创建的容器
-q 只显示容器的编号

退出容器
exit 容器停止并容器
ctrl+p+q 快捷键,容器退出不停止

删除容器
docker rm 容器id 删除指定容器,不能删除正在运行的容器。
-f $(docker ps -aq) 删除所有容器

docker ps -a -q|xargs docker rm 删除所有容器

启动和停止容器操作

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

后台启动容器

docker run -d centos
容器后台运行时,必须要有一个前台进程,docker发现没有前台应用,就会自动停止。

查看日志命令

docker logs  容器id
-tf 显示日志
--tail number 显示日志条数

写shell脚本,让容器永不停止
docker run -d centos /bin/bash -c "while true;do echo time;sleep 1;done"

查看容器中的进程信息

docker top 容器id

image-20210107153651855

查看镜像元数据

docker inspect --help			查看

docker inspect 容器id 查看容器的元数据

进入当前正在运行的容器

docker exec -it 容器id /bin/bash		进行容器后开启新的终端
docker attach 容器id /bin/bash 进入当前正在运行的终端,不会启动新的进程

容器拷贝文件

docker cp 容器id:容器内路径	宿主机路径

docker cp 宿主机路径 容器Id:容器内路径

作业1:部署nginx

搜索镜像
docker search nginx
下载镜像
docker pull nginx
启动镜像
docker run -d --name nginx01 -p 8080(外部端口):8080(容器端口)

作业2:部署tomcat

docker run -it --rm  tomcat:9.0		用完即删除

下载镜像
docker pull tomcat
启动镜像
docker run -d -p 6666:8080 --name tomcat01 tomcat

image-20210107181357152

作业3:部署es+kibana

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e  ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2

如上命令开启的es 内存占用较小
docker stats 查看docker CPU状态

作业:安装kibana

portainer(可视化)

Docker图形化界面管理工具!提供一个后台面板供我们操作!

docker run -d -p 8000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true \
portainer/portainer

image-20210107203200900

image-20210107203518716

docker commit镜像

docker commit 提交容器成为一个新的副本

docker commit -m "提交描述信息" -a="作者" 容器id 目标镜像名:[tag]

docker commit -a "Time" -m "add webapps app" 容器id 生成的镜像名:版本