docker基本命令
//脚本一键安装 centos8预安装了podman,回合docker冲突
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
//查看docker容器
docker ps -a
//几种状态
created(已创建)
restarting(重启中)
running 或 Up(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
//查找镜像,https://hub.docker.com
docker search centos
//dockerhub是docker官方维护的公共仓库,登录登出命令
docker login
docker logout
//拉取镜像
docker pull centos
//删除镜像
docker rmi centos
//查看已拉取的镜像
docker images
//运行容器
//后面的/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself
docker run -it centos /bin/bash
-i: 交互式操作。
-t: 终端。
//注意:重复的使用上面的命令使用同一镜像进入容器,他会创建多个容器出来
//启动、停止、重启容器
docker start\stop\restart 容器ID
//后台运行容器
docker run -itd centos /bin/bash
-t: 后台运行,不进入容器。
//进入后台启动的容器
//attach退出,会导致容器的停止。
docker attach/exec 容器ID
docker exec -it 3cf19d35b7c0 /bin/bash
//导出容器
docker export 容器ID 》 test.tar
//导入容器快照
cat test.tar | docker import - test:v1
//删除容器
docker rm -f 容器ID
//拉取网站的web应用
docker pull training/webapp # 载入镜像
docker run -d -P training/webapp python app.py
-P:将容器内部使用的网络端口随机映射到我们使用的主机上。
//查看 WEB 应用程序日志,-f效果和tail -f一样
docker logs -f 容器ID
//查看网络
docker network ls
//新建网络(类似组件局域网,容器之间能ping通)
docker network create -d bridge test-net
-d:参数指定 Docker 网络类型,有 bridge、overlay。
//为该网络添加容器
docker run -itd --name test1 --network test-net centos /bin/bash
//将web容器和mysql容器加到同一网络,实现互联(在web中mysql的连接要使用mysql的名称)
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=password --network test-net -d mysql:8.0.30
//将web项目打包成docker镜像的操作步骤可以去百度
docker run -itd -p 8081:7999 --name msg_manager --network test-net test/msg_manager /bin/bash
docker run -itd -p 7999:7999 --name msg_manager --add-host=mysql:127.0.0.1 boykacheng/msg_manager_rpo:v1 /bin/bash
//
//向dockerhub推送我们的web镜像
//tag修改镜像名称,推送镜像的规范是:
docker push 注册docker用户名/REPOSITORY:TAG
docker tag test/msg_manager:latest boykacheng/msg_manager_rpo:v1
docker push boykacheng/msg_manager_rpo:v1