docker上手尝试
-
Namespace:用于隔离资源
-
Cgroups:用于限制资源
- chroot (英文全称:change root): 命令用于改变根目录。
1、docer安装和hello-world使用
安装:sudo yum install docker 启动:sudo systemctl start docker 第一个:hello-world: sudo docker run hello-world 删除安装包:yum remove docker 删除镜像、容器、配置文件等内容:rm -rf /var/lib/docker
Centos安装Docker:
#Docker的旧版本被称为Docker或Docker -engine。如果安装了它们,请卸载它们以及相关的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#安装所需要的包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
#设置仓库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io
#启动 docker
sudo systemctl start docker
#设置 docker 开机自启动
sudo systemctl enable docker
常用命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 | docker search 镜像名称 //搜索镜像 docker pull 镜像名称:版本号 //拉取对应版本的镜像 docker pull 镜像名称 //默认拉取最新的镜像 docker images //查看本地已下载的镜像 docker ps //查看正在运行的容器 docker ps -a //查看所有的容器(包括run、stop、exited状态的) docker container ls //查看正在运行的容器 docker rm 容器ID //只能删除没有在运行的容器 docker rm -f 容器ID //可以删除正在运行的容器 docker run -p 本地主机端口号:容器服务端口号 --name 容器名字 [-e 配置信息修改] -d 镜像名字 docker start 容器ID //启动容器 docker stop 容器ID //终止容器 docker rmi 镜像名称orID //删除镜像 |
2、修改镜像源
在/etc/docker文件夹下有一个daemon.json的文件,在文件中添加响应的配置,就可修改镜像源
[root@zjl docker]# cat daemon.json
{
"debug":true,"experimental":true,
"registry-mirrors":["https://wxu4dyl.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}
修改后记得重新加载,然后重启
sudo systemctl daemon-reload
sudo systemctl restart docker
查看配置是否成功,可以通过命令行docker info查看
3、测试镜像Nginx
(1)、可以使用docker search nginx去对应的镜像源中查找镜像
(2)、也可以到docker hub上查找对应的镜像
(3)、拉取镜像
1 | docker pull nginx:latest |
latest表示拉取最新版本
(4)、查看镜像 docker images 查看所有的镜像
(5)运行容器跑镜像
1 2 3 4 5 6 7 | docker run --name nginx-test -p 8080 : 80 -d nginx run:运行 --name:容器的名称 -p:端口的映射 -d:后台运行程序 nginx:表示容器中的镜像 |
(6)、查看容器的打印日志:根据容器的容器id打印对应的日志
(7)、查看运行的容器及对应的状态
1 | docker ps -a //查看所有的运行容器 |
可以根据自己需求查找对应的容器
(8)查看对应容器
(9)删除对应容器
查看容器状态
删除容器操作
1 2 3 4 5 6 7 | docker rm $(docker ps -a | grep Exited | awk '{print $1}' ) docker rm :删除容器,接容器id docker ps -a | grep Exited | awk '{print $1}' :查找匹配对应的容器并输出容器id |
删除过程结果如下:
注:以上只是删除对应的容器,没有删除对应的镜像
(10)创建一个简单的jar包镜像
//创建一个文件夹,里面包含需要打包的jar包和打包的Dockerfile
#底层依赖
FROM java:8
#添加运行的文件 文件名 和 在镜像内的文件名
ADD booksalon.jar /test.jar
#暴露端口,该端口是容器的的端口
EXPOSE 12138
#镜像执行的操作
ENTRYPOINT ["java","-jar","/test.jar"]
#打包镜像
docker build -t test.jar .
docker build :打包镜像命令
-t:对应镜像tag的标签
.:代表打包的路径(Dockerfile的路径)单独的(.)代表当前路径
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!