当前位置:   article > 正文

Centos docker 使用学习_centos运行容器

centos运行容器

1、安装docker

CentOS Docker 安装 | 菜鸟教程

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

如果curl太慢,可以手动去那个网页下载sh文件

2、docker启动(只是启动docker服务,非镜像)

service docker restart

3、配置国内源(需要用上面命令重启docker)

docker 设置国内镜像源_whatday的博客-CSDN博客_docker 国内镜像源

  1. mkdir /etc/docker
  2. vim /etc/docker/daemon.json

写入

  1. {
  2. "registry-mirrors": ["http://hub-mirror.c.163.com"]
  3. }

配置阿里云的源 cr.console.aliyun.com 速度不错,但是需要登陆阿里云。

查看是否配置成功(末尾)

  1. # docker info
  2. Client:
  3. Context: default
  4. Debug Mode: false
  5. Plugins:
  6. app: Docker App (Docker Inc., v0.9.1-beta3)
  7. buildx: Docker Buildx (Docker Inc., v0.8.1-docker)
  8. scan: Docker Scan (Docker Inc., v0.17.0)
  9. Server:
  10. Containers: 0
  11. Running: 0
  12. Paused: 0
  13. Stopped: 0
  14. Images: 1
  15. Server Version: 20.10.14
  16. Storage Driver: overlay2
  17. Backing Filesystem: xfs
  18. Supports d_type: true
  19. Native Overlay Diff: true
  20. userxattr: false
  21. Logging Driver: json-file
  22. Cgroup Driver: cgroupfs
  23. Cgroup Version: 1
  24. Plugins:
  25. Volume: local
  26. Network: bridge host ipvlan macvlan null overlay
  27. Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
  28. Swarm: inactive
  29. Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
  30. Default Runtime: runc
  31. Init Binary: docker-init
  32. containerd version: 3df54a852345ae127d1fa3092b95168e4a88e2f8
  33. runc version: v1.0.3-0-gf46b6ba
  34. init version: de40ad0
  35. Security Options:
  36. seccomp
  37. Profile: default
  38. Kernel Version: 3.10.0-1160.45.1.el7.x86_64
  39. Operating System: CentOS Linux 7 (Core)
  40. OSType: linux
  41. Architecture: x86_64
  42. CPUs: 1
  43. Total Memory: 3.701GiB
  44. Name: localhost.localdomain
  45. ID: QIDE:BSNQ:Y4DO:N27T:W62H:42FG:H5FU:OUXY:SU5U:CR4N:WG4I:6MSO
  46. Docker Root Dir: /var/lib/docker
  47. Debug Mode: false
  48. Registry: https://index.docker.io/v1/
  49. Labels:
  50. Experimental: false
  51. Insecure Registries:
  52. 127.0.0.0/8
  53. Registry Mirrors:
  54. http://hub-mirror.c.163.com/
  55. Live Restore Enabled: false

4、拉取镜像

比如我拿到一个别人给的dockerhub地址

Docker Hub

直接pull就行

  1. # docker pull 镜像名
  2. docker pull dbgate/dbgate

5、关于拉取镜像比较旧

有些国内的源比较旧(好几个月前)

  1. # docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. dbgate/dbgate latest 420ccff0f9b8 7 months ago 109MB

而实际是几个小时前的更新

 我们可以手动指定下载的源镜像sha256 (假设我们想下载latest最新镜像),点击DIGEST

 拿到具体sha256值,拼接

  1. # docker pull 镜像名:标签@256值
  2. docker pull dbgate/dbgate:latest@sha256:e1719deb5520bc870b657e819699a27ab9f06a1ba4431ec7cdb00a807a40a835

就能拉取指定镜像

6、启动拉取的镜像

一般启动页面有介绍

 运行命令加上 -d 就能后台启动(守护进程)

上图中 -p 是端口映射,docker实例与宿主机的映射,--name是指定实例名称,-it 是产生用户交互式终端(如bash),最后那个是镜像名称,有的需要带上版本号

7、查看实例标识和杀死docker实例(或者停止docker实例)

实例定义:一个docker镜像可以启动很多的实例,就像是我们windows虚拟机使用同一个win10镜像可以制作多台windows机器一样

先ps查看运行的docker的实例标识,再kill 实例标识。实例标识的的定义为下面的 CONTAINER ID 或者 NAMES(NAMES在docker ps的末尾),其中 CONTAINER ID 可以不用填完整,填前几位就行,只要是唯一能确定是哪个实例的就行。stop和kill都可以。

  1. # docker ps (加-a选项可以查看所有的实例,包括已经停止的,我们停止了容器不代表也删除了)
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 182fe3a8e575 dbgate/dbgate "docker-entrypoint.s…" 19 minutes ago Up 19 minutes 0.0.0.0:9443->3000/tcp, :::9443->3000/tcp dbgate-instances
  4. # docker kill 182f
  5. # 但是docker kill并不是删除实例,,只是将实例停止,使用 docker ps -a 还能看到停止的实例,需要使用docker rm 才能彻底删除
  6. # docker stop 实例标识
  7. # 我们可以使用下面命令把停止的实例再次启动
  8. # docker start 实例标识

8、删除镜像

先查看要删除的镜像id,再删除,另外 -f 强制删除

Docker中怎么删除image - 服务器 - 亿速云

  1. # docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. dbgate/dbgate latest 420ccff0f9b8 7 months ago 109MB
  4. # docker rmi 420ccff0f9b8 -f
  5. # 直接不加 -f 删除可能会报错如下:【如果你基于这个镜像的实例存在(无论是运行状态还是关闭状态)】
  6. # Error response from daemon: conflict: unable to delete 82daf54b9899 (must be forced) - image is being used by stopped container 16cd70812156
  7. # 你需要先把实例关机删除 (关机参考第七步,删除参考第11步)

9、以bash方式进入容器

docker exec -it 实例标识 /bin/bash

10、拷贝文件到容器内

docker cp ./test.out 实例标识:/usr/

11、删除镜像的实例

一个docker容器可以有无数的实例,删除实例用rm,记得先把容器停了再删,或者加-f强制删除

  1. # docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 046e9fef1380 ubuntu:18.04 "/bin/bash" 13 seconds ago Up 12 seconds romantic_rubin
  4. f9a55076efbe ubuntu:18.04 "/bin/bash" 5 minutes ago Exited (0) 5 minutes ago test1
  5. 9b7731dcb711 ubuntu:18.04 "/bin/bash" 7 minutes ago Exited (0) 7 minutes ago test
  6. # docker rm f9a55076efbe

12、保存实例为镜像

  1. # docker commit -a "上传用户署名" -m "注释" 实例标识 镜像名称:版本号
  2. docker commit -a "xiaoming" -m "for test" 379fcc815bee abcde:0.1

13、查看镜像提交记录

  1. # docker history 镜像id
  2. docker history 379fcc815bee

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/891667
推荐阅读
相关标签
  

闽ICP备14008679号