服务器

Docker容器随笔

微信扫一扫,分享到朋友圈

Docker容器随笔
收藏 0 0

百科:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任
何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;
使用go语言编写,在LCX(linux容器)基础上进行的封装
简单来说分三点:
1)就是可以快速部署启动应用
2)实现虚拟化,完整资源隔离
3)一次编写,四处运行(有一定的限制,比如Docker是基于Linux 64bit的,无法在32bit的
linux/Windows/unix环境下使用)

为什么要用?

1、提供一次性的环境,假如需要安装Mysql,则需要安装很多依赖库、版本等,如果使用Docker则通过镜像就
可以直接启动运行
2、快速动态扩容,使用docker部署了一个应用,可以制作成镜像,然后通过Dokcer快速启动
3、组建微服务架构,可以在一个机器上模拟出多个微服务,启动多个应用
4、更好的资源隔离和共享

总结一句话:开箱即用,快速部署,可移植性强,环境隔离

一、Window 10 环境下安装Docker

简介:如何在Win10 环境下安装docker容器
Docker for Win10 安装包下载地址:
https://store.docker.com/editions/community/docker-ce-desktop-windows
国内镜像加速
https://registry.docker-cn.com #Docker中国区
http://hub-mirror.c.163.com #网易

安装前:电脑环境设置

下载好,进行安装

二、Linux系统安装Docker

安装环境:Centos 7
安装条件:docker官方要求至少3.8以上,建议3.10以上

查看内核版本:uname -a

Docker 版本:
docker EE 企业版本
docker CE 社区版本
关闭防火墙:

systemctl stop firewalld.service 

编辑

vi /etc/selinux/config

进入后,点 i 建 进入编辑模式 ,找到SELINUX值改为:

SELINUX=disabled
改完按esc 退出编辑

:wq 保存退出

安装wget插件

yum install -y wget

安装Docker Ce 社区版本:

查看当前docker现有的软件

yum list | grep docker

安装wget命令:

下载阿里云docker社区版 yum源

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
[root@VM-0-16-centos yum.repos.d]# ls -lrt
total 20
-rw-r--r-- 1 root root  230 Oct 22  2020 CentOS-Epel.repo
-rw-r--r-- 1 root root  614 Oct 22  2020 CentOS-Base.repo
-rw-r--r-- 1 root root 1149 Nov  1  2020 epel-testing.repo
-rw-r--r-- 1 root root 1050 Nov  1  2020 epel.repo
-rw-r--r-- 1 root root 2081 Jul 15 15:59 docker-ce.repo

安装路径:

[root@VM-0-16-centos yum.repos.d]# pwd
/etc/yum.repos.d

安装

yum install -y docker-ce.x86_64
设置开机启动:systemctl enable docker

更新xfsprogs:yum -y update xfsprogs

启动docker:systemctl start docker

查看版本:docker version

查看详细信息:docker info
[root@VM-0-16-centos yum.repos.d]# docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
  scan: Docker Scan (Docker Inc., v0.8.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.7
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc version: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-862.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 1.796GiB
 Name: VM-0-16-centos
 ID: HMZA:ZZVF:NEKX:TNTI:FBH5:F6P5:CKBK:Z5ZH:5ALB:WP4H:IVYM:ZNPG
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

查看本地镜像:docker images

查看本地镜像:docker images
搜索镜像:docker search centos
搜索镜像并过滤是官方的: docker search --filter "is-official=true" centos
搜索镜像并过滤大于多少颗星星的:docker search --filter stars=10 centos
下载centos7镜像:docker pull centos:7
修改本地镜像名字(小写):docker tag centos:7 mycentos:1
本地镜像的删除:docker rmi centos:7

配置镜像加速

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

{
  "registry-mirrors": ["https://zydfr31e.mirror.aliyuncs.com"]
}

保存退出/重启

systemctl daemon-reload

systemctl restart docker

或

systemctl daemon-reload && systemctl restart docker

已交互模式启动容器

docker run -it  8652b9f0cb4c

exit命令用于退出目前的shell

exit

构建容器启动:docker run -itd –name=mycentos centos:7
-i :表示以交互模式运行容器(让容器的标准输入保持打开)
-d:表示后台运行容器,并返回容器ID
-t:为容器重新分配一个伪输入终端
{
“registry-mirrors”: [“https://5xok66d4.mirror.aliyuncs.com”]
}
–name:为容器指定名称
查看本地所有的容器:docker ps -a
查看本地正在运行的容器:docker ps
停止容器:docker stop CONTAINER_ID / CONTAINER_NAME

[root@VM-0-16-centos yum.repos.d]# docker ps
CONTAINER ID   IMAGE      COMMAND       CREATED              STATUS              PORTS     NAMES
0f5c4b04fc8a   centos:7   "/bin/bash"   About a minute ago   Up About a minute             crazy_cray
[root@VM-0-16-centos yum.repos.d]# docker stop 0f5c4b
   //关闭的ID 不一定全部写完整或者 容器名字

一次性停止所有容器:docker stop $(docker ps -a -q)
启动容器:docker start CONTAINER_ID / CONTAINER_NAME //ID 不一定全部写完整或者 容器名字
重启容器:docker restart CONTAINER_ID / CONTAINER_NAME //ID 不一定全部写完整或者 容器名字
删除容器:docker rm CONTAINER_ID / CONTAINER_NAME //删除前先停止容器
强制删除容器:docker rmi -f CONTAINER_ID / CONTAINER_NAME //强制删除可以不用停止
查看容器详细信息:docker inspect CONTAINER_ID / CONTAINER_NAME
进入容器:docker exec -it 0ad5d7b2c3a4 /bin/bash

列出已有的容器id

docker ps -a -q

批量全部启动

docker start $(docker ps -a -q)

批量全部停止

docker stop $(docker ps -a -q)

查看当前位置路径:pwd

查看当前目录总共文件:ls -lrt

创建文件:cat >123.txt

编写内容,ctrl+c 结束

查看文件:cat 123.txt

从宿主机复制到容器:docker cp 宿主机本地路径 容器名字/ID:容器路径

docker cp /root/123.txt mycentos:/home/

进入容器

 docker exec -it mycentos00 /bin/bash

从容器复制到宿主机:docker cp 容器名字/ID:容器路径 宿主机本地路径
docker cp mycentos:/home/456.txt /root
宿主机文件夹挂载到容器里:docker run -itd -v 宿主机路径:容器路径 镜像ID
docker run -itd -v /root/xdclass/:/home centos:7

自定义镜像

方法一:Commit构建自定义镜像

简介:对容器的修改以及保存
简介:对容器的修改以及保存
启动并进入容器:docker run -it centos:7 /bin/bash
在/home 路径下创建xdclass文件夹:mkdir /home/xdclass
安装ifconfig命令:yum -y install net-tools
重启容器,查看容器的xdclass文件夹还在不在:docker restart 67862569d4f7
删除容器,再重新启动一个容器进入查看有没有xdclass文件夹:docker rm 67862569d4f7 && docker
run -it centos:7 /bin/bash
构建镜像:
docker commit 4eb9d14ebb18 mycentos:7
docker commit -a “XD” -m “mkdir /home/xdclass” 4eb9d14ebb18 mcentos:7
-a:标注作者
-m:说明注释
查看详细信息:docker inspect 180176be1b4c
启动容器:docker run -itd 180176be1b4c /bin/bash
进入容器查看:docker exec -it 2a4d38eca64f /bin/bash

方法二:Dockerfile构建镜像实战

Dockerfile

# this is a dockerfile
FROM centos:7
MAINTAINER XD 123456@qq.com
RUN echo "正在构建镜像!!!"
WORKDIR /home/xdclass
COPY 123.txt /home/xdclass
RUN yum install -y net-tools

构建:docker build -t mycentos:v2 .
查看:docker images
进入验证:验证成功

展开阅读全文
干一件事情,用心干就完了
下一篇

免费、好用的中文SSH工具「支持mac系统」

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

分类目录

微信扫一扫

微信扫一扫