命令 | 说明 |
---|---|
docker version | 显示 docker 的版本信息 |
docker ifno | 显示 docker 的系统信息 |
docker --help | 查看 docker 所有命令 |
docker [命令] --help | 查看命令的作用 |
Docker镜像(Image)就是一个只读的模板。将应用程序及其依赖、环境、配置打包在一起就是镜像。镜像可以用来创建容器,一个镜像可以创建多个容器。
命令 | 说明 |
---|---|
docker search | 搜索镜像 |
docker images | 查看本机上的镜像 |
docker pull | 拉取镜像 |
docker push | 推送镜像到服务 |
docker save | 将镜像保存为压缩包 |
docker load | 加载压缩包为镜像 |
docker rmi | 删除镜像 |
docker bulid | 构建镜像 |
显示所有镜像
docker images -a
常用可选项
-a,--all 列出所有镜像
-q,--quiet 只显示镜像id
镜像名称一般分两部分组成:[名字]:[版本].不加版本默认拉去最新的
拉取版本为5.7的mysql镜像
docker pull mysql:5.7
将镜像保存为压缩包
docker save -o nginx.tar nginx:latest
-o--output 输出到哪个个文件
加载压缩包为镜像
docker load -i nginx.tar
-i,--input 把哪个压缩包加载为镜像
搜索mysql镜像
docker search mysql --filter=STARS=3000
常用可选项
--filter=STARS=3000 搜索STARS大于3000的镜像
也可以到DockerHub上搜索镜像
点击去可以查看镜像信息和如何使用镜像
命令 | 说明 |
---|---|
docker run | 创建容器并运行 |
docker pause | 让容器从运行状态转到暂停状态 |
docker unpause | 让容器从暂停状态转到运行状态 |
docker stop | 让容器从运行状态转到停止状态 |
docker start | 让容器从停止状态恢复到运行状态 |
docker ps | 查看所有运行的容器及状态 |
docker logs | 查看容器的运行日志 |
docker exec | 进入容器执行命令 |
docker rm | 删除指定容器 |
exit | 退出容器 |
创建名为myNginx的nginx容器并后台运行
docker run --name myNginx -p 80:80 -d nginx
--name : 给容器起一个名字
-p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
-d:后台运行容器
nginx:镜像名称
显示所有容器
docker ps -a
-a 显示所有容器
跟踪日志
docker log -f myNginx
-f跟踪日志 ctrl+c停止日志跟踪
进入myNginx容器执行命令
docker exec -it myNginx bash
-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
bash:进入容器后执行的命令,bash是一个linux终端交互命令
强制删除myNginx容器
docker rm -f myNginx
-f强制删除容器
数据卷(volume)是虚拟目录,指向宿主机文件系统中的某个文件 /var/lib/docker/volume
命令 | 说明 |
---|---|
docker volume create | 创建数据卷 |
docker volume inspect | 显示数据卷信息 |
docker volume ls | 列出所有的数据卷 |
docker volume prune | 删除未使用的数据卷 |
docker volume rm | 删除指定数据卷 |
挂载数据卷到容器目录
docker run --name myNginx -p 80:80 -v html:/usr/share/nginx/html -d nginx
-v [数据卷名称]:[目标的容器内路径](如果容器运行时数据卷不存在则会被自动创建出来)
目录挂载与数据卷挂载相似
-v [宿主机目录]:[容器内目录]
-v [宿主机文件]:[容器内文件]
DockerFile命令
DockerFile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。更详细的语法可在官方文档查看
指令 | 说明 | 示例 |
---|---|---|
FORM | 指定基础镜像 | FORM centos7 |
ENV | 设置环境变量 | ENV key value |
COPY | 拷贝本地文件到镜像的指定目录 | COPY ./mysql-5.7.rpm /tmp |
RUN | 执行LInux的shell命令,一般是安装过程的指令 | RUN yum install gcc |
EXPOSE | 指定容器运行监听的端口,是给镜像使用者看的 | EXPOSE 8080 |
ENTRYPOINT | 镜像中应用的启动命令,容器运行时调用 | ENTRYPOINT java -jar xx.jar |
【案例】
基于CentOS镜像构建一个新镜像,运行java项目
# 最后面的点表示Dockerfile所在的目录
docker build -t myProject:1.0 .
Dockerfile文件内容
# 指定基础镜像
FROM centos 7
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local
# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar
# 安装JDK
RUN cd $JAVA_DIR \
&& tar -xf ./jdk8.tar.gz \
&& mv ./jdk1.8.0_144 ./java8
# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
Dockerfile的本质是一个文件,通过指令描述镜像的构建过程。Dockerfile的第一行必须是FROM,从一个基础镜像来构建。基础镜像可以是基本操作系统,也可以是其他人制作好的镜像,比如java:8-alpine
Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行
version: "3.8"
services:
#第一种方式:基于镜像的部署方式
mysql:
image: mysql:5.7.25
environment:
MYSQL_ROOT_PASSWORD: 123
volumes:
- "/tmp/mysql/data:/var/lib/mysql"
- "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
#第二种方式:临时构建镜像并且运行
web:
build: .
ports:
- "8090:8090"
安装
#安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose、
#授权
sudo chmod +x /usr/local/bin/docker-compose
部署命令
docker-compose up -d
一、配置Docker信任地址
打开要修改的文件
vi /etc/docker/daemon.json
添加内容:
"insecure-registries":["http://192.168.140.129:8080"]
重加载
systemctl daemon-reload
重启docker
systemctl restart docker
二、创建docker-compose.yml文件
创建目录
mkdir registry-ui
进去目录
cd registry-ui
创建文件
touchu docker-compose.yml
三、编辑docker-compose.yml文件
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- 8080:80
environment:
- REGISTRY_TITLE=my private registry
- REGISTRY_URL=http://registry:5000
depends_on:
- registry
四、执行dockercompose
docker-compose up id
五、访问私有仓库
六、上传镜像
重命名镜像
docker tag nginx:latest 192.168.140.129:8080/nginx:1.0
推送镜像
docker push 192.168.140.129:8080/nginx:1.0
拉取镜像
docker pull 192.168.140.129:8080/nginx:1.0
搭建简化版镜像仓库
docker run -d \
--restart=always \
--name registry \
-p 5000:5000 \
-v registry-data:/var/lib/registry \
registry
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/m0_60117382/article/details/123969532
内容来源于网络,如有侵权,请联系作者删除!