Docker基础管理操作

一 什么是Docker
1.1 概念
是一种轻量级的“虚拟机”,在Linux容器里运行应用的开源工具。
1.2 docker和虚拟机区别

Docker虚拟机
容量占用小,启动快,不安全容量占用大,启动慢,安全

1.3 docker容器使用场景
打包应用程序简化部署,可脱离底层硬件任意迁移。
1.4 三要素:容器,镜像,仓库
镜像——一个面向Docker容器弓|擎的只读模板
容器——从镜像创建的运行实例
仓库——集中保存镜像的地方

二 部署docker
2.1 安装依赖包

[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

2.2 设置阿里云镜像源

[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.3安装Docker-ce

[root@localhost yum.repos.d]# yum -y install docker-ce

安装的时候会提示报错 这是因为自己做光盘带的源放进backup里了,需要移出来。

mv /etc/yum.repos.d/backup/CentOS-Base.repo /etc/yum.repos.d/

2.4关闭防火墙

[root@localhost yum.repos.d]# systemctl stop firewalld
[root@localhost yum.repos.d]# setenforce 0

也可以永远关闭防火墙

vi /etc/selinux/config
SELINUX=disable

2.5开启docker

[root@localhost yum.repos.d]# systemctl start docker.service 
[root@localhost yum.repos.d]# systemctl enable docker.service

镜像加速
1:打开阿里云官网—》搜索“镜像加速”
在这里插入图片描述
2.在这里插入图片描述
3.在这里插入图片描述
写入镜像加速

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://ktuyn8y5.mirror.aliyuncs.com"]
}
EOF  ##写入镜像加速
systemctl daemon-reload   ##重载daemon
systemctl restart docker    ##重启docker


3.1 镜像下载

[root@server1 overlay2]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
Digest: sha256:6b1daa9462046581ac15be20277a7c75476283f969cb3a61c8725ec38d3b01c3
Status: Image is up to date for nginx:latest
docker.io/library/nginx:latest

3.2添加标签

[root@server1 ~]# docker tag nginx:latest nginx:new
[root@server1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              bc9a0695f571        7 hours ago         133MB
nginx               new                 bc9a0695f571        7 hours ago         133MB

3.3删除镜像

[root@server1 ~]# docker tag nginx:latest nginx:new
[root@server1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              bc9a0695f571        7 hours ago         133MB
nginx               new                 bc9a0695f571        7 hours ago         133MB
[root@server1 ~]# docker rmi bc9a0695f571 
Error response from daemon: conflict: unable to delete bc9a0695f571 (must be forced) - image is referenced in multiple repositories
[root@server1 ~]# docker rmi nginx:new
Untagged: nginx:new
[root@server1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              bc9a0695f571        7 hours ago         133MB

如上图 如果有多个名称 只能删除名称 删除ID会报错 因为无法识别

3.4
存出镜像命名为nginx存在当前目录下 必须下载镜像才能存 docker save -o 存储路径 镜像

[root@server1 ~]#  docker save -o /opt/nginx nginx:latest
[root@server1 ~]# docker rmi nginx:latest 
Untagged: nginx:latest
Untagged: nginx@sha256:6b1daa9462046581ac15be20277a7c75476283f969cb3a61c8725ec38d3b01c3
Deleted: sha256:bc9a0695f5712dcaaa09a5adc415a3936ccba13fc2587dfd76b1b8aeea3f221c
Deleted: sha256:a6862ade3b91fdde2aa8a3d77fdcc95b1eb6c606be079c11b7f97f249d0e731d
Deleted: sha256:32bcbe3740b68d0625744e774b404140366c0c4a2b2eadf32280d66ba001b4fb
Deleted: sha256:2dc5e43f496e41a18c016904b6665454a53be22eb4dcc1b468d864b4e2d1f311
Deleted: sha256:5fe6a7c579cd9fbcfa604810974c4c0c16893f4c40bc801545607ebd0accea74
Deleted: sha256:f5600c6330da7bb112776ba067a32a9c20842d6ecc8ee3289f1a713b644092f8
[root@server1 ~]# docker load < /opt/nginx
f5600c6330da: Loading layer  72.52MB/72.52MB
7ccabd267c9f: Loading layer  64.54MB/64.54MB
850c2400ea4d: Loading layer  3.072kB/3.072kB
f790aed835ee: Loading layer  4.096kB/4.096kB
7e914612e366: Loading layer  3.584kB/3.584kB
Loaded image: nginx:latest

删除镜像–载入镜像

四 容器制作
docker create [选项] 镜像运行的程序
-i 让容器的标准输入保持打开
-t 让Docker分配一个伪终端
查看容器运行状态
docker ps [选项]
-a 列出所有的容器,包括未运行的容器

docker run 等同于下载镜像、创建容器、启动容器

[root@server1 ~]# docker create -it paigeeworld/centos7 /bin/bash
Unable to find image 'paigeeworld/centos7:latest' locally
latest: Pulling from paigeeworld/centos7
Image docker.io/paigeeworld/centos7:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
a3ed95caeb02: Pull complete 
7235103339cf: Pull complete 
c962e85f182c: Pull complete 
e945c72281a4: Pull complete 
bd558d66c6e0: Pull complete 
b6d31d07a319: Pull complete 
Digest: sha256:356b32d72680f0b9e0489af16961b2c3de74e18cbd391ffcf5ab085997fedf2b
Status: Downloaded newer image for paigeeworld/centos7:latest
6e7caa30484530d3775ebe1375be1a07c3908493f67e45cf8e432f1e6c67c1bd
[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS               NAMES
6e7caa304845        paigeeworld/centos7   "/bin/bash"         35 seconds ago      Created                                 loving_spence
[root@server1 ~]# docker create -it paigeeworld/centos7 /bin/bash
a0c6e70581d9e1b3625f45f5bd06b67d53854e3bf9f7eef3e21563212e29c4ac
[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS               NAMES
a0c6e70581d9        paigeeworld/centos7   "/bin/bash"         7 seconds ago       Created                                 lucid_napier
6e7caa304845        paigeeworld/centos7   "/bin/bash"         3 minutes ago       Created                                 loving_spence
[root@server1 ~]# docker start a0c6e70581d9
a0c6e70581d9
[root@server1 ~]# docker start 6e7caa304845
6e7caa304845
[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS               NAMES
a0c6e70581d9        paigeeworld/centos7   "/bin/bash"         2 minutes ago       Up About a minute                       lucid_napier
6e7caa304845        paigeeworld/centos7   "/bin/bash"         5 minutes ago       Up 8 seconds                            loving_spence
[root@server1 ~]# docker run paigeeworld/centos7 /usr/bin/bash -c ls /
bin
boot
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

可以看到下载的镜像

  [root@server1 ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
nginx                 latest              bc9a0695f571        8 hours ago         133MB
nginx                 new                 bc9a0695f571        8 hours ago         133MB
paigeeworld/centos7   latest              4cbe7aa905e7        6 years ago         382MB
                            

可以看到执行命令后容器关闭了

[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                      PORTS               NAMES
8af89be69754        paigeeworld/centos7   "/usr/bin/bash -c ls…"   16 minutes ago      Exited (0) 16 minutes ago                       musing_volhard
a0c6e70581d9        paigeeworld/centos7   "/bin/bash"              19 minutes ago      Up 18 minutes                                   lucid_napier
6e7caa304845        paigeeworld/centos7   "/bin/bash"              22 minutes ago      Up 17 minutes                                   loving_spence

进入容器

[root@server1 ~]# docker exec -it a0c6e70581d9 /bin/bash
bash-4.2# ls /
bin  boot  dev etc  home  lib lib64  lost+found  media  mnt  opt  proc  root run  sbin  srv sys  tmp  usr  var
bash-4.2# exit
exit
[root@server1 ~]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                      PORTNAMES
8af89be69754        paigeeworld/centos7   "/usr/bin/bash -c ls…"   28 minutes ago      Exited (0) 28 minutes ago       musing_volhard
a0c6e70581d9        paigeeworld/centos7   "/bin/bash"              31 minutes ago      Up 31 minutes                   lucid_napier
6e7caa304845        paigeeworld/centos7   "/bin/bash"              34 minutes ago      Up 29 minutes                   loving_spence

持续在后台运行

docker run paigeeworld/centos7 /usr/bin/bash -c "while true;do echo hello;done"

停止一直在后台运行 只要停止这个容器id

[root@server1 ~]# docker stop 32abf1ed5104
32abf1ed5104

五 容器导出

[root@server1 ~]# docker export a0c6e70581d9 > nginx_c
[root@server1 ~]# ls 
anaconda-ks.cfg                local.repo           公共  文档
backup                         nginx-1.12.2         模板  下载
initial-setup-ks.cfg           nginx-1.12.2.tar.gz  视频  音乐
kibana-4.3.1-linux-x64.tar.gz  nginx_c              图片  桌面

容器导入

[root@server1 ~]# cat nginx_c | docker import - nginx:web
sha256:6cf674b9866c1e6d5c2bb1d387c2f34850f834c4ef80b559f4cf246765587b11
[root@server1 ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
nginx                 web                 6cf674b9866c        8 seconds ago       355MB
nginx                 latest              bc9a0695f571        8 hours ago         133MB
nginx                 new                 bc9a0695f571        8 hours ago         133MB
paigeeworld/centos7   latest              4cbe7aa905e7        6 years ago         382MB

容器删除

[root@server1 ~]# docker ps -a | awk '{print "docker rm "$1}' |bash
Error: No such container: CONTAINER
32abf1ed5104
8af89be69754
Error response from daemon: You cannot remove a running container a0c6e70581d9e1b3625f45f5bd06b67d53854e3bf9f7eef3e21563212e29c4ac. Stop the container before attempting removal or force remove
Error response from daemon: You cannot remove a running container 6e7caa30484530d3775ebe1375be1a07c3908493f67e45cf8e432f1e6c67c1bd. Stop the container before attempting removal or force remove

不能删除开着的容器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值