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
相关推荐
wusam8 分钟前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习04(环境准备)
学习·docker·centos
苹果醋317 分钟前
大模型实战--FastChat一行代码实现部署和各个组件详解
java·运维·spring boot·mysql·nginx
梁诚斌1 小时前
VSOMEIP代码阅读整理(1) - 网卡状态监听
运维·服务器·网络
深情废杨杨1 小时前
服务器几核几G几M是什么意思?如何选择?
运维·服务器
康熙38bdc1 小时前
Linux 进程优先级
linux·运维·服务器
Web极客码1 小时前
常见的VPS或者独立服务器的控制面板推荐
运维·服务器·控制面板
只是有点小怂1 小时前
parted是 Linux 系统中用于管理磁盘分区的命令行工具
linux·运维·服务器
三枪一个麻辣烫2 小时前
linux基础命令
linux·运维·服务器
cuisidong19972 小时前
如何在 Kali Linux 上安装 Google Chrome 浏览器
linux·运维·chrome
wusam3 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习03(网络及IP规划)
运维·服务器·网络·docker·容器