Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库Docker 安装启动 Docker 常用命令 Docker 应用部署 Docker 迁移备份 Dockerfile Docker 私有仓库 启动 docker

大家好,欢迎来到IT知识分享网。

目录

1.Docker安装与启动

1.1 安装Docker

 1.2 设置ustc的镜像

 1.3 Docker的启动与停止

2.常用命令

2.1 镜像相关命令

2.1.1 查看镜像

2.1.2 搜索镜像

 2.1.3 拉取镜像

2.1.4 删除镜像

2.2 容器相关命令

2.2.1 查看容器

2.2.2 创建与启动容器

2.2.3 停止与启动容器

2.2.4 文件拷贝

2.2.5 目录挂载

2.2.6 查看容器IP地址

2.2.7 删除容器

3.应用部署

3.1 MySQL部署

3.2 Tomcat部署

 3.3 Nginx部署

3.4 Redis部署 

4.迁移与备份

4.1 容器保存为镜像

4.2 镜像备份

4.3 镜像恢复与迁移 

5.Dockerfile

5.1 什么是Dockerfile

5.2 常用命令

5.3 使用脚本创建镜像

6.Docker私有仓库

6.1 私有仓库搭建与配置

6.2 镜像上传至私有仓库


1.Docker安装与启动

1.1 安装Docker

(1)yum 包更新到最新

sudo yum update

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

 (3)设置yum源为阿里云

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

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

(4)安装docker

// ce社区版本 ee企业版本 sudo yum install docker-ce

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

 (5)安装后查看docker版本

docker -v

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

(6)卸载docker

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

或者

sudo yum remove docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd

 1.2 设置ustc的镜像

编辑该文件:

vi /etc/docker/daemon.json  

在该文件中输入如下内容:

{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

如果报错:error pulling image configuration: download failed after attempts=6: dial tc可以把下面镜像源再加入进入,重启docker 

"https://i1el1i0w.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://registry.aliyuncs.com","https://registry.docker-cn.com"

 重启:

// 重启守护线程 systemctl daemon-reload // 重启docker systemctl restart docker

 1.3 Docker的启动与停止

systemctl start docker

停止docker:

systemctl stop docker

重启docker:

systemctl restart docker

开机启动:

systemctl enable docker

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

 查看docker概要信息

docker info

查看docker帮助文档

docker help 

2.常用命令

2.1 镜像相关命令

2.1.1 查看镜像

docker images
  • REPOSITORY:镜像名称
  • TAG:镜像标签
  • IMAGE ID:镜像ID
  • CREATED:镜像的创建日期(不是获取该镜像的日期)
  • SIZE:镜像大小

这些镜像都是存储在Docker宿主机的/var/lib/docker目录下

2.1.2 搜索镜像

如果你需要从网络中查找需要的镜像,可以通过以下命令搜索

docker search 镜像名字
  • NAME:仓库名称
  • DESCRIPTION:镜像描述
  • STARS:用户评价,反应一个镜像的受欢迎程度
  • OFFICIAL:是否官方
  • AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

 2.1.3 拉取镜像

拉取镜像就是从中央仓库中下载镜像到本地

docker pull 镜像名称

例如,我要下载centos7镜像

docker pull centos:7

2.1.4 删除镜像

按镜像ID删除镜像。镜像在创建的容器中没有运行才可以删除镜像

docker rmi 镜像ID

删除所有镜像

// 不是引号 docker rmi `docker images -q`

2.2 容器相关命令

2.2.1 查看容器

查看正在运行的容器

docker ps

查看所有容器

docker ps -a 

查看最后一次运行的容器

docker ps –l

查看停止的容器

docker ps -f status=exited

2.2.2 创建与启动容器

  • -i:表示运行容器
  • -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
  • –name :为创建的容器命名。
  • -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
  • -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
  • -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

 (1)交互式方式创建容器

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态  

退出当前容器

exit

(2)守护式方式创建容器:

docker run -di --name=容器名称 镜像名称:标签

登录守护式容器方式:

docker exec -it 容器名称 (或者容器ID) /bin/bash

2.2.3 停止与启动容器

停止容器:

docker stop 容器名称(或者容器ID)

 启动容器:

docker start 容器名称(或者容器ID)

2.2.4 文件拷贝

如果我们需要将文件拷贝到容器内可以使用cp命令

docker cp 需要拷贝的文件或目录 容器名称:容器目录

也可以将文件从容器内拷贝出来

docker cp 容器名称:容器目录 需要拷贝的文件或目录

2.2.5 目录挂载

docker run -di -v /usr/local/benjamin:/usr/local/benjamin--name=redis3 redis:latest

如果你共享的是多级的目录,可能会出现权限不足的提示。这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数  –privileged=true  来解决挂载的目录没有权限的问题

2.2.6 查看容器IP地址

我们可以通过以下命令查看容器运行的各种数据

docker inspect 容器名称(容器ID) 

也可以直接执行下面的命令直接输出IP地址

docker inspect --format='{ 
   {.NetworkSettings.IPAddress}}' 容器名称(容器ID)

2.2.7 删除容器

删除指定的容器:容器必须停止,没有运行

docker rm 容器名称(容器ID)

3.应用部署

3.1 MySQL部署

(1)拉取mysql镜像

docker pull centos/mysql-57-centos7

(2)创建容器

docker -id --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7

3.2 Tomcat部署

(1)拉取镜像

docker pull tomcat

(2)创建容器

docker run -id --name=tomcat -p 8080:8080 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat

如果tomcat部署png图片,在webapps包下面新建一个文件夹,将静态图片放进去即可测试。

 3.3 Nginx部署

(1)拉取镜像

docker pull nginx

(2)创建Nginx容器

docker run -id --name=nginx -p 80:80 nginx

tip:nginx创建容器后nginx路径在/etc/nginx,进入容器就可以看到

进入nginx容器

docker exec -it nginx /bin/bash

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

 注意配置文件里面的配置以及映射资源的路径,对nginx资源映射不理解的可以看我发的相关nginx blog。如果刚创建的nginx容器没有修改就需要把资源放到图片中的配置文件指定的路径下面。

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

3.4 Redis部署 

(1)拉取镜像

docker pull redis

 (2)创建容器

docker run -id --name=redis -p 6379:6379 redis

 部署好测试一下连接:

 Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

4.迁移与备份

4.1 容器保存为镜像

我们可以通过以下命令将容器保存为镜像

// docker commit 容器名 镜像名字 docker commit nginx nginx_bak

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

4.2 镜像备份

 我们可以通过以下命令将镜像保存为tar 文件

// docker save -o 备份名字 镜像名字 docker save -o nginx_bak.tar nginx_bak

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

4.3 镜像恢复与迁移 

docker load -i nginx_bak.tar

删除刚刚备份的镜像,通过镜像tar包重新恢复镜像 

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

5.Dockerfile

5.1 什么是Dockerfile

5.2 常用命令

命令 作用
FROM image_name:tag 定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name 声明镜像的创建者
ENV key value 设置环境变量 (可以写多条)
RUN command 是Dockerfile的核心部分(可以写多条)
ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file 和ADD相似,但是如果有压缩文件并不能解压
WORKDIR path_dir 设置工作目录

5.3 使用脚本创建镜像

#依赖镜像名称和ID FROM centos:latest #指定镜像创建者信息 MAINTAINER Benjamin #切换工作目录 WORKDIR /usr/local/tem RUN mkdir /usr/local/tem/java #ADD 是相对路径jar,把java添加容器中 ADD jdk-8u261-linux-i586.tar.gz /usr/local/tem/java #配置java环境变量 ENV JAVA_HOME /usr/local/tem/java/ ENV JAVA $JAVA_HOME/jre ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH $JAVA_HOME/bin:$PATH 

 (4)执行命令构建镜像

docker build -t='jdk1.8' .

(5)查看镜像是否建立完成

docker images

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

6.Docker私有仓库

6.1 私有仓库搭建与配置

(1)拉取私有仓库镜像

docker pull registry

(2)创建私有仓库容器

docker run -di --name=registry -p 5000:5000 registry

(3) 访问http://192.168.64.129:5000/v2/_catalog为空,表示搭建私有仓库成功私有仓库5000

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

(4)修改daemon.json 

vi /etc/docker/daemon.json

添加以下内容,保存退出。

这个ip是我上传容器的服务器,拉取镜像也需要配置信任docker 私有仓库地址

{"insecure-registries":["192.168.64.129:5000"]} 

此步用于让 docker信任私有仓库地址

(5)重启docker 服务

systemctl restart docker

6.2 镜像上传至私有仓库

(1)标记此镜像为私有仓库的镜像

docker tag nginx 192.168.64.129:5000/nginx

(2)启动私服容器

docker start registry

(3)上传标记的镜像

docker push 192.168.64.129:5000/nginx

再次查询私服:

Docker安装启动、常用命令、应用部署、迁移备份、Dockerfile、Docker私有仓库

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/110332.html

(0)
上一篇 2026-02-01 11:21
下一篇 2026-02-01 11:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信