docker基本命令

Docker:

​ docker是一个容器,docker可以打包、发布、运行任何的应用,docker就像一个盒子,里面可以装很多物件,如果需要物件,可以一件一件拿走。

docker基本概念:

  • 镜像(Image):相当于虚拟机的ISO镜像
  • 容器(Container): 镜像创建的运行实例
  • 仓库(Repository): 类似于GitHub,用来托管镜像的

​ docker里面的容器是由镜像生成的,必须去镜像中拉取容器,比如说要安装一个Nginx服务,要去仓库里面拉取一个Nginx镜像,通过一些命令将镜像创建容器,再通过一些命令开启容器。这个容器会共用电脑的资源(CPU、内存),但是功能和服务是独立开的,因为容器的内核是Ubuntu。

​ docker服务可以打包、解包。给其他人一起用。

centos7安装docker:

# 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
>> yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置源,我这里用的是中央仓库
>> yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
# 查看所有仓库中的所有的docker版本,选择一个自己喜欢的
>> yum list docker-ce --showduplicates | sort -r
# 我这里选择的是18.06.1.ce-3.el7 
>> yum install docker-18.06.1.ce-3.el7
# 启动docker,然后设置开机启动
>> systemctl start docker
>> systemctl enable  docker
# 查看版本
>> docker version

其他命令:

docker pull 服务名:版本号		# 拉取服务
docker ps 	# 查看当前正在运行的容器
docker ps -a # 查看所有容器的状态
docker start/stop id/name 	# 启动/停止某个容器
docker attach id 	# 进入某个容器(使用exit退出后容器也跟着停止运行)
docker exec -ti id /bin/bash 	# 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
docker images 	# 查看本地镜像
docker rm id/name 	# 删除某个容器
docker rmi id/name 	# 删除某个镜像
docker run --name test -ti ubuntu /bin/bash  	# 复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash

通过镜像去创建容器:

docker run [option] 镜像名 【向启动容器中闯入命令】
# 运行Nginx服务
>> docker run -it nginx:1.18.0 /bin/bash
# 查看该Nginx服务下有什么文件
>> ls
# 查看当前在运行的容器
>> docker container ls
# 查看所有的容器
>> docker container ls -all
# 简写
docker ps
docker ps -a
* REPOSITORY:镜像所在的仓库名称 
* TAG:镜像标签 
* IMAGEID:镜像ID 
* CREATED:镜像的创建日期(不是获取该镜像的日期) 
* SIZE:镜像大小
常用可选参数:
* -i 表示以《交互模式》运行容器。
* -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。 /bin/bash
* --name 为创建的容器命名。
* -v 表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 
* -d 会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。 
* -p 表示端口映射,即宿主机端口:容器中端口。
* --network=host 表示将主机的网络环境映射到容器中,使容器的网络与主机相同。

常用的创建docker容器:(-d --name=XXX)

# 开启容器并在后台运行
>> docker run -d ngixn
# 创建一个自命名为mynginx的并开启后台运行的Nginx服务
>> docker run -d --name=mynginx nginx

创建端口映射创建容器(特定的端口和容器映射):(-p)

​ 把宿主机的8080端口映射到docker容器中的80端口,这时候就可以通过宿主机的8080端口去访问容器的80端口!

>> docker run -d --name=mynginx -p 8080:80 nginx
# 查看本机ip
ifconfig

创建一个网络环境和主机相同的容器(网络映射):(--network)

>> docker run -d --name=ip_nginx --netowrk=host nginx

创建与宿主机目录映射的容器(把容器的目录映射到宿主机中):(-v)

​ 目录映射以后可以直接在宿主机中修改容器里面的文件

>> cd /home
>> mkdir Desktop
>> cd Desktop
>> mkdir home
>> docker run -d --name=nginx111 -v /home/Desktop/home:/home

进入到开启的容器中:(exec -it XXX /bin/bash)

# CONTAINER ID(NAMES)== 容器id(名字)
>> docker exec -it  CONTAINER ID(NAMES) /bin/bash

停止某个容器

>> docker stop mynginx

启动某个容器

>> docker star mynginx

删除容器:(rm)

# 开启的容器不能删除
>> docker container rm mynginx
# 先关闭开启的容器
>> docker container stop mynginx
>> docker container rm mynginx

# 强制删除开启的容器
>> docker container rm -f mynginx

在docker中拷贝本地文件到容器里面:

​ 没有目录映射的时候就用此方法

>> docker cp 宿主机本地文件名 容器名:容器路径

将容器制作成镜像并打包成压缩包:

# 将容器制作成镜像
>> docker commit 容器名 镜像名
# 将镜像打包成压缩文件
>> docker save -o XXX.tar 镜像名	#会在本地生成一个压缩包XXX.tar

删除镜像:

>> docker image rm 镜像名

把压缩包解压成镜像:

>> docker load -i XXX.tar 

查看容器的报错状态:

docker logs 容器名
posted @ 2020-11-16 21:18  Morpheus1024  阅读(83)  评论(0编辑  收藏  举报