docker--------介绍、常用命令,国内源配置

1 docker 国内源配置

镜像:一堆文件

-目前从远程仓库下载的:https://hub.docker.com/

-镜像有很多人提供:官方提供,第三方提供

-镜像--》更新--》Tag不同版本

-centos:latest 最新

-docker pull 能找到,仓库中有才行

-忘掉:docker search 名字

容器:镜像运行后的---》当成一个简洁的操作系统即可

docker操作

python 复制代码
	docker -v  查看版本
    systemctl status docker 查看docker状态
    systemctl start docker
    systemctl stop docker
    docker info  # 查看docker更详细信息

docker pull 设置国内镜像站

远程仓库,下载镜像 ,国外:https://hub.docker.com---》下载比较慢--》设置国内镜像站

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

阿里云注册会有一个属于自己的镜像加速器

docker安装后会有 /etc/docker 文件夹

python 复制代码
vim /etc/docker/daemon.json

配置这句话

python 复制代码
systemctl daemon-reload      
systemctl restart docker
python 复制代码
{
  "registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
}

2 镜像相关操作

1 查找镜像

-docker search 镜像名称

-建议去hub.docker.com 直接搜,更直观

2 拉取镜像,指定标签 tag

python 复制代码
docker pull centos:7
如果不指定标签,会下载最新
docker pull centos
docker pull centos:latest

3 查看本地镜像

python 复制代码
docker images  # 等同于 docker image ls

4 删除镜像

python 复制代码
docker rmi 镜像ID   # 可以同时删多个

5 删除所有镜像

python 复制代码
# 查出所有镜像的id号     docker images -q
docker rmi `docker images -q`

3 容器相关操作

把镜像运行成容器,并且一个镜像,可以运行出多个容器

查看正在运行的容器

python 复制代码
docker ps 

查看所有容器

python 复制代码
docker ps -a

查看最后一次运行的容器

python 复制代码
docker ps -l

启动停止的容器

python 复制代码
docker start id/名字

停止运行的容器

python 复制代码
docker stop 7d5e

停止所有在运行的容器

python 复制代码
docker stop `docker ps -q`

3.2 run运行容器

运行容器(其实是两步:创建容器:create,运行容器:run)

-如果容器没有创建,直接执行run,就会创建并运行,所以你只需要会run就行了

-run 的时候,有很多参数

-i:表示运行容器

-t:表示容器启动后会进入容器命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)

--name :为创建的容器命名,如果不写,随机生成一个名字

-v:表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

python 复制代码
docker run -id  # 不会进入到容器内部
docker run -it  # 会进入到容器内部

# 创建一个python3.9容器---》不进入
docker run -id --name python3 python:3.9



# 启动一个centos容器,名字叫mycentos,并且进入
docker run -it --name=mycentos centos:7
yum install vim -y  # 在容器中装了vim软件
exit  # 退出,容器停止了


######重要
# 如果是it进入容器---》容器会开启一个进程处理我:/bin/bash   python  如果在容器中敲exit退出了这个进程,这个进程就结束了---》容器会停止---》容器要运行,必须有个前台进行在运行,并且是夯住(阻塞)的---》否则容器就听了


# 启动一个centos容器,名字叫mycentos,不进入
docker run -id  centos:7

# 启动容器
docker start mycentos



# 进入到容器内部(本质是让容器执行命令)
docker exec 容器id 命令
docker exec f82e8578b9b1 ls

docker exec -it  f82e8578b9b1 /bin/bash  # 进入到容器内部

# 退出
exit

3.1 -v目录映射

python 复制代码
1 运行容器并做映射(宿主机--》有docker软件)
docker run -id --name=lqzcentos  -v /home/lqz/:/home/ centos:7
#docker run -id --name=lqzcentos  -v /home/lqz/aa.txt:/aa.txt centos:7
2 进入到容器内部
docker exec -it lqzcentos /bin/bash
3 到home路径下
cd /home
4 容器内部修改文件---》会影响外部

5 外部修改文件---》影响内部


# 好处是,后期咱们部署django项目
	有个django容器,做好映射,代码放在宿主机上即可,以后更新了代码,只要重启容器,代码就是最新了
    运行mysql容器---》mysql配置文件放在宿主机上做好映射
    mysql容器---》表数据,放到容器中---》如果删了容器---》数据库全没了
    表数据,放在宿主机上---》把容器删除---》表数据还在----》再启动一个容器做好映射---》数据都还在
    
    
    
    
# -v参数:目录映射
docker run -id --name=lqz -v /home/lqz:/lqz centos:7
以后无论在宿主机还是容器中修改当前目录下的文件,都会相互影响

3.4 -p 端口映射

python 复制代码
# -p参数:端口映射  容器中启动一个mysql5.7 --》容器中的3306监听,
宿主机3306没人监听,做端口映射后,宿主机的3306就被docker的这个容器监听了
# 启动的mysql的root密码是123456

# 启动mysql容器
docker run -id --name=mysql -p 3307:3306  -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

#  netstat -nlp |grep 3307 查看本机80端口占用情况
# 以后访问宿主机80端口就等于访问容器的3306端口

3.5 容器剩余

python 复制代码
# 启动容器
	docker start 容器id
# 停止容器
	docker stop 容器id

# 文件拷贝(宿主机执行)
	# 容器的文件copy到宿主机上(不是在容器内执行)
    docker cp 容器名称:容器目录 需要拷贝的文件或目录
    docker cp  f6ce8be027de:/aa.txt /aa.txt
    # 宿主机的文件copy到容器中
    docker cp 需要拷贝的文件或目录 容器名称:容器目录
    docker cp /home/lqz/aa.txt f6ce8be027de:/aa.txt

# 查看容器IP地址    
	docker inspect 容器名称  # 查看容器的详细描述,很多
    docker inspect 7f412212f708 --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
    
    
# 在多个容器之间是可以ping通的(容器和宿主机也可以)
# centos:172.17.0.3
# mysql:172.17.0.2

    
# 删除容器(删除已停止的容器)
	docker rm 容器id  
    docker rm `docker ps -a -q`
    
    
    
# 无状态的服务(在容器中尽量运行无状态的服务)
    -mysql reids   有状态,运行过程中产生数据,保存,容器删除,数据就没了
    -uwsgi+django  无状态的服务

5 迁移备份

镜像从哪来的?

1 docker pull 拉的

2 通过容器打包成镜像

3 Dockerfile构建

容器保存为镜像

python 复制代码
	-运行一个centos容器
    docker run -id --name centos_vim centos:7
    -在容器中装vim
    docker exec -it a6e240 /bin/bash
	yum install vim -y
    
    -把容器做成镜像(centos+vim)
    docker commit centos_vim centos_vim_image

    -把centos_vim 容器删除
    docker rm centos_vim
    -基于新构建的镜像,运行成容器
    docker run -id --name centos_vim centos_vim_image:latest
    -进入到容器中,查看,软件都在
    docker exec -it id号 /bin/bash

镜像备份和恢复

python 复制代码
docker save -o centos_vim_image.tar centos_vim_image
    -删除容器,删除镜像
    -把备份的镜像恢复
    docker load -i centos_vim_image.tar
相关推荐
m0_7482347118 分钟前
Jo-im开发:用于WebRTC的ICE中继服务器Coturn搭建
运维·服务器·webrtc
MaiTube&Maipdf43 分钟前
对外发PDF设置打开次数
运维·服务器·网络
真想骂*1 小时前
如何在Linux上配置SSH密钥以实现免密登录
linux·运维·ssh
Just_Do_IT_OK1 小时前
Docker--Bitnami/redis
docker·容器
webmote1 小时前
Fabric.js 入门教程:扩展自定义对象的完整实践(V6)
运维·javascript·canvas·fabric·绘图
元气满满的热码式1 小时前
k8s-node2 NotReady 节点NotReady如何解决?
云原生·容器·kubernetes
lory代码搬运工1 小时前
解决PDF.js部署到IIS服务器上后报错mjs,.ftl 404 (Not Found)
运维·服务器·pdf
飞翔沫沫情1 小时前
《快速部署Mysql-slave 容器,实现高效主从同步》
数据库·docker·mysql主从同步
享受 生活1 小时前
【docker】docker desktop 在windows上支持 host模式
运维·docker·容器
mengao12341 小时前
arm架构 uos操作系统离线安装k8s
容器·kubernetes