docker镜像就好比一个模板,可以通过这个模板来创建容器,eg:tomcat镜像==>run==>tomcat01容器
容器(container):
docker利用容器技术,独立运行一个或一组应用,通过镜像的方式创建
启动,停止,删除,基本命令
仓库(repository):
仓库就是存放镜像的地方
仓库分为共有仓库和私有仓库
Docker安装 安装流程#1.删除已有docker
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
#2.下载需要的安装包 yum install -y yum-utils
#3.设置镜像的仓库
sudo yum-config-manager
--add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-nightly
#4.docker安装 yum install docker-ce docker-ce-cli containerd.io
#5.启动docker systemctl start docker #开机自启 systemctl enable docker
#6.查看docker是否安装成功 docker version
#7.hello docker docker run hello-world
#8.查看镜像 docker images # 结果 REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d1165f221234 5 months ago 13.3kB
#docker的卸载 yum remove docker-ce docker-ce-cli containerd.io rm -rf /var/lib/docker rm -rf /var/lib/containerdDocker配置阿里云加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://036bdzy5.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
回顾hello-world流程
Docker的常用命令
帮助命令
docker version镜像命令
# 本地镜像操作 docker images --help docker images -a # 仓库 标签 镜像id 创建时间 镜像大小 REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d1165f221234 5 months ago 13.3kB docker images -f # label:这个是根据标签进行过滤,其中lable的值,是docker在编译的时候配置的或者在Dockerfile中配置的 docker images -f "dangling=true" #dangling:显示标记为空的镜像,值只有true和false docker images -f 'before=mysql' # 表示某个镜像构建时间之前的镜像列表 docker images -f 'since=mysql' # 表示的是在某个镜像构建之后构建的镜像 docker images -f 'reference=hello*' # reference:这个是添加正则进行匹配
# docker-hub仓库镜像操作 docker search --help docker search mysql docker search mysql -f=stars=1000 # 查询收藏数在1000以上的镜像
# 拉取镜像,docker镜像是分层存储的,每一层都可以被不同镜像使用 docker pull --help docker pull mysql # 默认取最新的版本 docker pull mysql:5 # 指定版本
# 删除镜像 docker rmi --help docker rmi mysql # 根据 REPOSITORY 来删除镜像 docker rmi mysql:v1 # 根据 REPOSITORY:TAG 来删除镜像 docker rmi 1e1148e4cc2c # 根据 IMAGE ID 来删除镜像,同时会删除所有该镜像的TAG镜像 docker rmi $(docker images -f 'reference=mysql*' -q)docker命令
说明:有了镜像才可以创建容器,下面利用linux的centos测试
docker pull centos
新建容器
docker run [可选参数] image # 参数说明 --name="Name" 容器名字 tomcat01 tomcat02 用来区分容器 -d 后台方式运行 -it 使用交互方式运行,进入容器查看内容 -p -p ip:主机端口:容器端口 -p 主机端口:容器端口(常用) -p 容器端口 随机端口 docker run -it --name="test" centos /bin/bash # 测试,启动并进入到容器 # ls 查看容器的centos,基础版本,很多命令是不完善的 bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
查看容器
docker ps # 查看正在运行的容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES docker ps -a # 查看所有的容器 docker ps -n=? # 显示n个容器的 docker ps -aq # 只显示containerid
退出容器并删除
exit # 从容器中退回主机
ctrl + P + Q # 容器不停止退出
docker rm 容器id # 删除指定容器,不能删除正在运行的容器
docker rm -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 镜像名/镜像id ,docker使用后台运行,必须有一个前台进程,没有则会自动停止 docker run -d centos /bin/bash -c "while true;do echo zhanghao; sleep 5;done" #查看日志 docker logs -tf --tail 10 4f5c654e3e38 docker logs -tf -n 10 test
进程命令
docker top test # 该命令用于检查容器或镜像的详细信息 docker inspect test



