当前位置:   article > 正文

Docker让部署更方便_docker c++ 方便吗

docker c++ 方便吗

Docker 简述

  • Docker的思想来自于集装箱;
  • 隔离 : Docker核心思想,打包装箱,每个箱子是互相隔离的。
  • Docker容器内的应用直接运行在宿主机的内核,容器没有自己的内核,也没有虚拟我们的硬件,所以就轻便了
  • 每个容器间是相互隔离,每个容器都有一个属于自己的文件系统,互不影响

Docker组成

在这里插入图片描述

  • 镜像(image):就像一个模板,可以通过这个模板来创建容器服务,并且一个模板可以创建多个容器。
  • 容器(container):可以把容器看作一个linux系统,有启动、停止、删除等linux基本命令,docker利用容器可以运行一个或者一组应用。
  • 仓库(repository):存放镜像的地方。分为私有仓库和公有仓库.

Docker安装

  • 准备换机centos7
  • 查看系统信息
    [root@VM-0-17-centos ~]# cat /etc/os-release
[root@VM-0-17-centos ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

安装docker

卸载旧的版本

 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

安装需要的安装包

 sudo yum install -y yum-utils
  • 1

设置镜像厂库

# 默认是国外的
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
#建议使用阿里的,比较快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

更新yum软件包索引

yum makecache fast
  • 1

安装docker相关的源 docker-ce 社区 ee 企业版

yum install docker-ce docker-ce-cli containerd.io
  • 1

启动docker

systemctl start docker
  • 1

查看docker状态

systemctl status docker
  • 1

使用docker version 查看是否安装成功

docker version 
  • 1

卸载docker

--依赖卸载
yum remove docker-ce docker-ce-cli containerd.io

--删除资源 /var/lib/docker docker的默认工作路径
rm -rf /var/lib/docker
  • 1
  • 2
  • 3
  • 4
  • 5

阿里云镜像加速

首先申请阿里云账号,找到阿里云加速器地址

在这里插入图片描述

配置阿里云镜像仓库

vim /etc/docker/daemon.json
  • 1

添加加速地址:加速地址即上边对应的加速器地址。

{
  "registry-mirrors": ["你的加速地址"]
}
  • 1
  • 2
  • 3

保存文件,重新加载配置,重启docker服务。

sudo systemctl daemon-reload  

sudo systemctl restart docker
  • 1
  • 2
  • 3

Docker的常用命令

帮助命令

docker version      # 显示docker的版本信息
docker info         # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help   # 帮助命令
  • 1
  • 2
  • 3

镜像命令

-- 查看本地所有的镜像
docker images
  • 1
  • 2
[root@VM-0-17-centos ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
mysql        8.0.2     f693302d97a2   3 years ago   266MB
mysql        8.0.0     228d71078f8c   4 years ago   433MB
-- 解释
REPOSITORY  镜像的仓库源
TAG         镜像的标签
IMAGE ID    镜像的id
CREATED     镜像的创建时间

-- 可选参数
	-a, --all      # 列出所有的镜像
	-q, --quiet    # 只显示镜像的id
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 搜索镜像:docker search 镜像名
[root@VM-0-17-centos ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11028     [OK]       

-- 可选参数 
--filter , -f		#根据所提供的条件过滤

docker search mysql -f=stars=5000 #stars为5000的mysql镜像
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 下载镜像:docker pull 镜像名称
[root@VM-0-17-centos ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
69692152171a: Pull complete # 分层下载,docker image的核心 联合文件系统
1651b0be3df3: Pull complete 
951da7386bc8: Pull complete 
0f86c95aa242: Pull complete 
37ba2d8bd4fe: Pull complete 
6d278bb05e94: Pull complete 
497efbd93a3e: Pull complete 
f7fddf10c2c2: Pull complete 
16415d159dfb: Pull complete 
0e530ffc6b73: Pull complete 
b0a4a1a77178: Pull complete 
cd90f92aa9ef: Pull complete 
Digest: sha256:d50098d7fcb25b1fcb24e2d3247cae3fc55815d64fec640dc395840f8fa80969 # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  # 真实地址
# 指定版本下载
[root@VM-0-17-centos ~]# docker pull mysql:5.7

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 删除镜像: docker rmi 镜像id
[root@VM-0-17-centos ~]# docker rmi -f 镜像id                # 删除指定的镜像
[root@VM-0-17-centos ~]# docker rmi -f  镜像id 镜像id 镜像id  # 删除多个镜像
[root@VM-0-17-centos ~]# docker rmi -f $(docker images -aq) # 删除全部镜像  docker images -aq查看所有的镜像id
  • 1
  • 2
  • 3

容器命令

  • 前提是有镜像
  • 先拉一个centos镜像玩玩
[root@VM-0-17-centos ~]# docker pull centos
  • 1
  • 新建并启动容器
docker run [可选参数] image
# 参数说明
--name = "Name"    容器名字  tomcat01,tomcat02,用来区分容器
-d                 后台方式运行
-it                使用交互方式运行,进入容器查看区分
-p                 指定容器的端口 -p 8080:8080
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
    容器端口
-p                 随机指定端口
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 启动并进入容器
[root@VM-0-17-centos ~]# docker run -it centos /bin/bash
[root@6a09156cfea9 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
  • 1
  • 2
  • 3
  • 查看所有的运行的容器:docker ps
[root@VM-0-17-centos ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

  -a   # 列出当前正在运行的容器+带出历史运行过的容器
  -n=? # 显示最近创建的容器
  -q   # 只显示容器的编号
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 退出容器
--exit            # 直接容器停止并退出
--Ctrl + P + Q    # 容器不停止退出
[root@8c17683adce3 /]# exit
exit
[root@VM-0-17-centos ~]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 删除容器
# docker rm -f 容器id  删除指定的容器
[root@VM-0-17-centos ~]# docker rm -f 8c17683adce3 

#docker rm -f $(docker ps -aq) 删除所有的容器
[root@VM-0-17-centos ~]# docker rm -f $(docker ps -aq)

#docker ps -aq|xargs docker rm    # 删除所有的容器
[root@VM-0-17-centos ~]# docker ps -aq|xargs docker rm

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 启动和停止容器
#启动容器:docker start 容器id
#停止容器:docker stop 容器id
#重启容器:docker restart 容器id
#强制停止容器:docker kill 容器id
  • 1
  • 2
  • 3
  • 4

后台启动容器

#docker run -d 镜像名
[root@VM-0-17-centos ~]# docker run -d centos
c0ee41d68b9f7fa3fe166128d32e3bcc465d9a71b379b75e9505fa0316c5d980
  • 1
  • 2
  • 3

进入当前正在运行的容器

# docker exec        # 进入容器后开启一个新的终端,可以在里面操作(常用)
# docker attach      # 进入容器正在执行的终端,不会启动新的进程
[root@VM-0-17-centos ~]# docker exec -it 26ed565c7f93 /bin/bash
[root@26ed565c7f93 /]# 
[root@VM-0-17-centos ~]# docker attach 5306f2aebc84
[root@5306f2aebc84 /]# 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

查看日志

# 查看日志
#docker logs -f -t 容器id

# 解释参数
-tf                # 显示日志
--tail number      # 要显示的日志条数

#显示100条日志
#docker logs -tf --tail 100 容器id
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

查看容器中的进程信息

#docker top 容器id
[root@VM-0-17-centos ~]# docker top 5306f2aebc84
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                2991517             2991497             0                   14:23               pts/0               00:00:00            /bin/bash
  • 1
  • 2
  • 3
  • 4

查看镜像源数据

  • 便于查看状态,数据挂载等
#docker inspect 容器id
[root@VM-0-17-centos ~]# docker inspect 5306f2aebc84
  • 1
  • 2

容器内拷贝文件到主机

#docker cp 容器id:容器路径 主机目标目录
[root@VM-0-17-centos /]# docker cp 5306f2aebc84:/wyj /home/
  • 1
  • 2
- 我是无影,相信再小的帆也能远航,感谢各位大佬的点赞、收藏和评论,我们下期见! 
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/364752
推荐阅读
相关标签
  

闽ICP备14008679号