Docker创建使用容器及常用命令

一、Docker概念

1.1 Docker简介

        Docker可以让开发者打包一些应用和依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的Linux机器上。Docker是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器的性能开销极低

1.2 应用场景

  • web应用的自动化打包和发布
  • 自动化测试和持续集成,发布
  • 在服务型环境中部署和调整数据库或其他后台应用

1.3 Docker的组成

        docker守护进程,仓库,镜像,容器,docker客户端

二、Docker安装启动,常用命令

2.1 安装docker

# 1、yum包更新到最新
yum -y update
# 2、作用:安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、设置yum源
# 3.1、方案一:使用ustc的(推荐)
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
# 3.2、方案二:使用阿里云(可能失败)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4、安装docker-ce(社区版本)
sudo yum -y install docker-ce
# 5、查看docker版本
docker -v
# 6、添加daemon.json文件
mkdir /etc/docker
vim /etc/docker/daemon.json
# 添加以下代码
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

2.2 Docker操作命令

# 启动docker服务
systemctl start docker
# 停止docker服务
systemctl stop docker
# 重启docker服务:
systemctl restart docker
# 查看docker状态
systemctl status docker
# 设置开机启动docker服务
systemctl enable docker

2.3 Docker镜像相关命令

# 查看当前已存在镜像:
docker images
# 搜索镜像:
docker search centos7
# 拉取:例: docker pull centos:7
docker pull 镜像名称:版本号(若不指定则会拉取最新的版本) 
# 删除指定镜像:
docker rmi 镜像id或镜像名称
# 查看正在运行的容器 
docker ps
# 查看所有容器使用命令: 
docker ps -a
# 清理镜像(系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理):
docker image prune

三、创建容器

3.1 创建交互式容器

交互式容器:以交互式方式创建并启动容器,启动完成后,直接进入当前容器。使用exit命令退出容器。需要注意的是以此种方式退出容器,则容器会进入停止状态
-i:表示运行
-t:表示容器启动后会进入其命令行,加入这两个参数后,容器创建就能登录进去,即分配一个伪终端
–name:为创建的容器命名
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意最好做目录映射,在宿主机上修改,然后共享到容器上
-p:表示端口映射,前者是宿主机端口,后者容器内的映射端口,可以使用多个-p做多个端口映射

启动交互式容器后是直接进入容器终端;可以查看容器的文件结构,使用exit退出并停止容器

# 查看容器,-a表示查看全部
docker ps -a
# 创建并启动交互式容器
# docker run -it(创建交互式容器) --name=(容器名称) 镜像名称:版本号 解析容器终端脚本解析器
docker run -it --name=mycentos1 centos:7 /bin/bash

3.2 创建守护式容器

守护式容器:创建&启动守护式容器(不会因为exit而停止容器)

# 创建并启动守护式容器
docker run -di --name=centos2 centos:7
# 启动容器后再进入容器
docker exec -it centos2 /bin/bash

3.3 解决报错WARNING: IPv4 forwarding is disabled. Networking will not work

如果出现该报错,原因是没有开启转发,网桥配置完后,需要开启转发,不然容器启动后,就会没有网络,解决方式:

vim /etc/sysctl.conf
# 配置转发
net.ipv4.ip_forward=1
# 重启服务,让配置生效
systemctl restart network
# 查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward
# 重启docker服务
service docker restart 
# 查看运行过的容器
docker ps -a
# 启动mycentos 容器
docker start mycentos 
# 进入mycentos 容器
docker attach mycentos 
# 获取百度信息
curl www.baidu.com

四、操作centos镜像容器:停止,拷贝,挂载(创建容器时),查看ip,删除容器

# 查看所有容器/已启动的容器
docker ps   /   docker ps -a
# 停止容器
docker stop mycentos2
# 启动容器
docker start mycentos2
# 创建文本并复制到容器中
touch abc.txt 
# 宿主机复制到容器中
docker cp aaa.txt mycentos2:/
docker exec -it mycentos2 /bin/bash
# 容器复制到宿主机中
docker cp mycentos2:/bbb.txt /root
# 目录挂载,在创建容器的时候,将宿主机的目录与容器内的目录进行映射
# **创建容器时**把宿主机/home/share挂载到容器相同目录下
docker run -di -v /home/share:/home/share --name=mycentos2 centos:7
# 如果共享的是多级目录,可能会出现权限不足的提示。因为centos中的安全模块selinux把权限禁掉了,需要提那家参数--privileged=true来解决挂载的目录没有权限的问题
# 查看容器ip
主机:docker inspect mycentos2
# 删除容器:先停止容器后删除
docker rm 容器名/id

至此docker的基本操作已经结束,可以开始使用啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值