Bootstrap

docker基础命令

目录

1、docker拉取镜像

2、查看镜像

3、运行镜像

4、查看容器

5、停止、启动、容器和删除容器

6、进入容器

7、删除镜像

8、保存镜像

9、加载镜像

10、镜像标签

11、制作镜像

​12、镜像上传


1、docker拉取镜像

docker pull  用户名/镜像名:tag


不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

#如果用户名不存在,则拉取的是docker官方的镜像,否则为指定用户制作的镜像

拉取镜像前最好能docker官方仓库中去查询下镜像

官网镜像库区地址:

Docker Hub Container Image Library | App Containerization

上图第一个是docker官方制作的nginx镜像,通过docker pull nginx拉取.

第二个是非docker官方制作的镜像,通过docker pull nginx/nginx-ingress,表示,是nginx用户创建的镜像nginx-ingress。

2、查看镜像

docker images

3、运行镜像

docker run 镜像名
docker run 镜像名:Tag
docker run -it -d --name 要取的别名 -p: 镜像名:Tag /bin/bash 
docker run -dit --privileged -p80:80 -p10250:8080 -p30000-30010:30000-30010 --name centos7.8-test  changqing263/centos7.8-with_vim_and_yum:latest   /usr/sbin/init


docker run 表示运行一个镜像
-dit 是 -d -i -t 的缩写。 -d ,表示 detach,即在后台运行。 -i 表示提供交互接口,这样才可以通过 docker 和 跑起来的操作系统交互。 -t 表示提供一个 tty (伪终端),与 -i 配合就可以通过 ssh 工具连接到 这个容器里面去了

--privileged参数时,容器内的root用户将拥有与宿主机上的root用户相同的能力。这包括但不限于:
     1.访问宿主机的所有设备节点(如/dev下的设备文件)。
     2.修改或加载内核模块。
     3.挂载文件系统。
     4.访问宿主机的某些受保护的文件

-p80:80 第一个80,表示在宿主机上开放21端口。 第二个80 表示在容器里开放80端口。 这样当访问CentOS 的80端口的时候,就会间接地访问到容器里了
-p10250:8080 和 80一个道理
-p30000-30010 和80也是一个道理
--name centos7.8-test 给容器取了个名字,叫做 centos7.8-test
changqing263/centos7.8-with_vim_and_yum:latest就是镜像的名称, latest是版本号,即最新版本

/usr/sbin/init就是给容器一个超级管理员root的权限,登入终端是有init负责的,这样才可以执行systecmctl service等命令。

4、查看容器

#查看所有的容器,包含停止和运行中的容器
docker ps -a  
#只查看运行中的容器
docker ps 

5、停止、启动、容器和删除容器

#停止、启动容器,可通过容器名或容器id停止,可通过docker ps 查看
docker stop CONTAINER ID或NAMES
docker start CONTAINER ID或NAMES

#删除容器(只能删除停止的容器,如未停止,需要先停止容器)
docker rm CONTAINER ID或NAMES




##如果想强制删除容器(可以删除运行中的容器)

docker rm -f CONTAINER ID或NAMES

6、进入容器

#进入容器
docker exec -it 容器名/容器ID /bin/bash

#进入 前面的 redisText 容器   
docker exec -it nginx /bin/bash

7、删除镜像

docker rmi 镜像名或镜像id   

8、保存镜像

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

docker save bitnami/nginx:latest  -o /tmp/nginx.tar

9、加载镜像

docker load -i 镜像保存文件位置

例如:docker load -i /tmp/nginx.tar

docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]

#在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。

10、镜像标签

在工作中有开发环境、测试环境、生产环境以及版本迭代,就可以利用标签来进行区分
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG

# 如果省略TAG 则会为镜像默认打上latest TAG
docker tag wait59/centos7.8:v1 changqing263/centos7.8:v1


11、制作镜像

#保存当前正在运行的容器,将其制作为新镜像

docker   commit -m="描述信息" -a="作者" 容器id或容器名 目标镜像名: [TAG]

12、镜像上传

#推送到docker的公共仓库
登录镜像仓库
docker login my.private.registry.com
#如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout : 登出


#使用令牌登录
docker login -u username -p password_or_token my.private.registry.com


#上传镜像到仓库
docker push 用户名/镜像名
例如: docker push changqing263/nginx:v2,会将本地的changqing263/nginx:v2镜像上传到docker hub官网的个人仓库中。

如上传docker官网,,可通过如下解决docker官网无法上传和下载镜像的问题:

https://blog.csdn.net/qq_38719003/article/details/143085935?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-143085935-blog-128650604.235%5Ev43%5Econtrol&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-143085935-blog-128650604.235%5Ev43%5Econtrol&utm_relevant_index=6

;