**
docker安装
**
方法一:
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
[root@feng ~]# yum install -y docker-ce
方法二:rpm离线安装
进入网址,下载安装包(这个方法较好用)
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
(1)docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
(2)docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm 依赖包
通过secureFX ,上传安装包
先安装依赖包再安装docker-ce-17.03.0
[root@feng ~]# ll
[root@feng ~]# yum install -y docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
[root@feng ~]# ll
[root@feng ~]# yum install -y docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
重启&&开机自启docker
[root@feng ~]# systemctl start docker
[root@feng ~]# systemctl enable docker
查看docker状态
[root@feng ~]# docker info
方法三:docker软件包直接上传
docker.tar.gz
[root@feng ~]# tar -zxvf docker.tar.gz
[root@feng ~]# ll
[root@feng ~]# cd docker
[root@feng docker~]# ll
[root@feng docker~]# mv /etc/yum.repos.d/C* /media/
[root@feng docker~]# vi /etc/yum.repos.d/local.repo
[docker]
name=docker
baseurl=file:///root/docker
gpgcheck=0
enabled=1
Docker镜像管理
(续方法二)
[root@feng ~]# docker pull centos 拉取镜像(下载镜像慢)
[root@feng ~]# docker images 查看镜像/镜像列表
[root@feng ~]# vi /etc/docker/daemon.json 加速镜像
{
“registry-mirrors”:[“https://dhq9bx4f.mirror.aliyuncs.com”]
}
[root@feng ~]# systemctl restart docker 重启docker服务
[root@feng ~]# docker pull centos 拉取镜像
[root@feng ~]# docker images 镜像列表
[root@feng ~]# docker search centos 搜索镜像
[root@feng ~]# docker tag 镜像ID aaa:v1 给镜像打标签
[root@feng ~]# docker run -itd centos 把镜像启动为容器
[root@feng ~]# docker run -it aaa:v3
-i表示让容器的标准输入打开
-t表示分配一个伪终端
-d表示后台启动,
[root@feng ~]# docker ps -a 查看运行的所有容器(-a选项后可以查看所有容器,包括未运行的)
[root@feng ~]# docker rmi ID/aaa:v1 删除镜像
后面的参数可以是tag,如果是tag时,实际上是删除该tag。当后面的参数为镜像ID时,则会彻底删除整个镜像,所有标签也会一同删除
**
Docker通过容器创建镜像
**
[root@feng ~]# docker run -it aaa:v1 启动容器
[root@feng ~]# docker exec -it ID /bin/bash 进入容器
[root@32e4968db914 /]# ping www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=127 time=48.6 ms
[root@容器ID~]# yum install -y net-tools
[root@容器ID~]# netstat -ntpl
ctrl+D 两次退出
[root@feng ~]# ping www.baidu.com (都可ping通百度)
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=128 time=278 ms
[root@feng ~]# docker commit -m “net-tools” -a “作者信息” ID bbb(新镜像)
-m 加一些改动信息,-a 指定作者相关信息
*Docker使用模板创建镜像
**
https://openvz.org/Download/templates/precreated
通过网址下载安装包
centos-7-x86_64-minimal.tar.gz
1、tar包转镜像
[root@feng ~]#cat centos-7-x86-minimal.tar.gz|docker import - centos7 导入该镜像
sha256:a92d858f1fbfc05905354efb9d5a446a076ce0b760b4050a569d7a069f4b199b
[root@feng ~]# docker images 查看导入的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 8 seconds ago 435 MB
aaa v1 0d120b6ccaa8 3 months ago 215 MB
[root@feng ~]# docker run -itd a92d858f1fbf /bin/bash 运行该镜像
cea4040751b5d036b1b566d8b855bc24810296f9c0ff45531806c26060cd3c07
[root@feng ~]# docker ps -l 查看容器列表
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cea4040751b5 a92d858f1fbf “/bin/bash” 22 minutes ago Up 22 minutes frosty_lamarr
2、镜像转tar包
[root@feng ~]# docker ps -a
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 30 minutes ago 435 MB
aaa v1 0d120b6ccaa8 3 months ago 215 MB
[root@feng ~]# docker save -o b.tar 0d120b6ccaa8 把现有镜像,导出为一个文件
[root@feng ~]# ll
total 378484
-rw-------. 1 root root 1316 Oct 30 00:06 anaconda-ks.cfg
-rw-------. 1 root root 222365696 Dec 3 11:36 b.tar
-rw-r–r--. 1 root root 145639219 Dec 3 10:10 centos-7-x86_64-minimal.tar.gz
-rw-r–r--. 1 root root 19521288 Dec 2 11:12 docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
-rw-r–r--. 1 root root 29108 Dec 2 11:13 docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
[root@feng ~]# docker load < b.tar 把tar包转回镜像
Loaded image ID: sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566
删除镜像,要先删除容器
[root@feng ~]# docker ps -a
[root@feng ~]# docker images
[root@feng ~]# docker rm -f $(docker ps -qa) 删除全部容器
cea4040751b5
32e4968db914
68af555c7cde
4ec88cbb7d66
#docker ps -qa 显示容器ID
[root@feng ~]# docker rmi 0d120b6ccaa8
Untagged: aaa:v1
Deleted: sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566
Deleted: sha256:291f6e44771a7b4399b0c6fb40ab4fe0331ddf76eda11080f052b003d96c7726
[root@feng ~]# docker images
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 56 minutes ago 435 MB
[root@feng ~]# docker load < b.tar 把tar包转回镜像
291f6e44771a: Loading layer [==================================================>] 222.4 MB/222.4 MB
Loaded image ID: sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566
[root@feng ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 57 minutes ago 435 MB
0d120b6ccaa8 3 months ago 215 MB
3、tar转镜像
[root@feng ~]# docker tag 0d120b6ccaa8 b:v23
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf About an hour ago 435 MB
b v23 0d120b6ccaa8 3 months ago 215 MB
[root@feng ~]# docker push b:v23
The push refers to a repository [docker.io/library/b]
291f6e44771a: Preparing
denied: requested access to the resource is denied
Docker容器管理
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 3 hours ago 435 MB
b v23 0d120b6ccaa8 3 months ago 215 MB
[root@feng ~]# docker create -it a92d858f1fbf bash 创建一个容器
34aee78eb14d374801a146907e37c934d9a2c8ea1e10e12dc6e38da8e29eba3f
[root@feng ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34aee78eb14d a92d858f1fbf “bash” 14 seconds ago Created nostalgic_leakey
[root@feng ~]# docker start 34aee78eb14d 启动容器
34aee78eb14d
[root@feng ~]# docker run -it centos7 bash 进入了一个虚拟终端里面,我们可以运行一些命令,使用命令exit或者ctrl d 退出该bash,当退出后这个容器也会停止。
[root@feng ~]# docker run -d centos7 bash 可以让容器在后台运行
dcb85092ca2d8c785e063d5fb4d0595018e862beb70f416a2692e33bae3af57f
[root@feng ~]# docker run -d centos bash -c “while :; do echo “123”; sleep 2; done”
3cb395ad3fc1c47a0845892ccdd9bb3e7e195839509c982cf41a2179db348f0a
[root@feng ~]# docker run --name web -itd centos bash --name 给容器自定义名字
9a886b38506c75054dbb2deb4acdde686e7920f02e34e14e874e7a9d6959fa7c
[root@feng ~]# docker run --rm -it centos bash -c “sleep 30” 命令执行完容器就会退出
[root@feng ~]# docker exec -it 32e4968db914 /bin/bash
**
Docker容器管理
** (注意空格,多空会报错)
[root@feng ~]# docker logs 9a886b38506c 容器日志(可以获取到容器的运行历史信息)
[root@feng ~]# docker exec -it 3cb395ad3fc1 bash 进入容器(可以临时打开一个虚拟终端,并且exit后,容器依然运行着
)
[root@3cb395ad3fc1 /]#
[root@3cb395ad3fc1 /]# docker rm 3cb395ad3fc1
[root@feng ~]# ng ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a886b38506c centos “bash” 2 minutes ago Up 2 minutes web
3cb395ad3fc1 centos “bash -c 'while :;…” 3 minutes ago Up 3 minutes frosty_meitner
e5f42b1a5adb centos7 “bash -c 'while::d…” 3 minutes ago Exited (1) 3 minutes ago cranky_leakey
dcb85092ca2d centos7 “bash” 10 minutes ago Exited (0) 10 minutes ago distracted_wilson
34aee78eb14d a92d858f1fbf “bash” 18 minutes ago Up 16 minutes nostalgic_leakey
[root@feng ~]# docker attach 3cb395ad3fc1 可以进入一个后台运行的容器
123
123
远程登陆
容器(虚拟机10节点)—tar包—远程复制—tar包—导入镜像—容器(虚拟机20节点)
20节点
[root@jing ~]# cd /etc/yum.repos.d/
[root@jing yum.repos.d]# ll
total 4
-rw-r–r--. 1 root root 68 Nov 25 16:34 cdrom.repo
[root@jing yum.repos.d]# mv /media/CentOS- /etc/yum.repos.d/
[root@jing yum.repos.d]# mv /etc/yum.repos.d/cdrom.repo /media/*
[root@jing yum.repos.d]# cd
[root@jing ~]# yum repolist
Loaded plugins: fastestmirror
base | 3.6 kB 00:04
extras | 2.9 kB 00:00
updates | 2.9 kB 00:00
(1/4): base/7/x86_64/group_gz | 153 kB 00:01
(2/4): extras/7/x86_64/primary_db | 222 kB 00:02
(3/4): updates/7/x86_64/primary_db | 3.7 MB 00:07
(4/4): base/7/x86_64/primary_db | 6.1 MB 00:08
Loading mirror speeds from cached hostfile
- base: mirror.bit.edu.cn
- extras: mirrors.huaweicloud.com
- updates: mirror.bit.edu.cn
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10,072
extras/7/x86_64 CentOS-7 - Extras 448
updates/7/x86_64 CentOS-7 - Updates 775
repolist: 11,295
[root@jing ~]# yum insatll -y docker-ce-selinux-17.03.0.ce-1.el7.
[root@jing ~]# systemctl start docker
10节点
[root@feng ~]# scp a.tar root@192.168.200.40:/root
The authenticity of host ‘192.168.200.40 (192.168.200.40)’ can’t be established.
ECDSA key fingerprint is SHA256:jK8pJtGwHwXaNmq2NwcnBX+1J0AD6CvBLoPgeEXycM8.
ECDSA key fingerprint is MD5:5a:28:9b:9c:25:6d:42:2a:7d:9a:f1:34:96:f1:e8:dd.
Warning: Permanently added ‘192.168.200.40’ (ECDSA) to the list of known hosts.
root@192.168.200.40’s password:
a.tar 100% 212MB 74.1MB/s 00:02
20节点
[root@jing ~]# cat a.tar |docker import - centos
sha256:554c838eb3cd7dfb407e8b6cf9955b1a29bc450a131f2ad63c803fa6cdf8db39
[root@jing ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 554c838eb3cd 9 seconds ago 215 MB
[root@jing ~]# docker run -itd --name ccc centos /bin/bash
8308b42764417622194becfd86c9ca4f82f3c2ef578cd53efd07864ef25ca633
[root@jing ~]#
[root@jing ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8308b4276441 centos “/bin/bash” 10 seconds ago Up 10 seconds ccc
10节点
[root@feng ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a886b38506c centos “bash” 6 hours ago Exited (0) 5 hours ago web
3cb395ad3fc1 centos “bash -c 'while :;…” 6 hours ago Up 28 minutes frosty_meitner
e5f42b1a5adb centos7 “bash -c 'while::d…” 6 hours ago Exited (1) 6 hours ago cranky_leakey
dcb85092ca2d centos7 “bash” 6 hours ago Exited (0) 6 hours ago distracted_wilson
34aee78eb14d a92d858f1fbf “bash” 6 hours ago Exited (137) 5 hours ago nostalgic_leakey
Docker仓库管理
[root@feng ~]# docker pull registry 下载registry 镜像
Using default tag: latest
latest: Pulling from library/registry
cbdbe7a5bc2a: Pull complete
47112e65547d: Pull complete
46bcb632e506: Pull complete
c1cc712bcecd: Pull complete
3db6272dcbfa: Pull complete
Digest: sha256:8be26f81ffea54106bae012c6f349df70f4d5e7e2ec01b143c46e2c03b9e551d
Status: Downloaded newer image for registry:latest
[root@feng ~]# docker images 查看镜像列表
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 10 hours ago 435 MB
b v23 0d120b6ccaa8 3 months ago 215 MB
centos latest 0d120b6ccaa8 3 months ago 215 MB
registry latest 2d4f4b5309b1 5 months ago 26.2 MB
[root@feng ~]# docker run -d -p 5000:5000 registry 以registry镜像启动容器
1808bb3e7b96f05eed02980865a54738718e4494e652514283da7a9e6adb3121
[root@feng ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1808bb3e7b96 registry “/entrypoint.sh /e…” 19 seconds ago Up 19 seconds 0.0.0.0:5000->5000/tcp fervent_stallman
[root@feng ~]# docker rm -f 1808bb3e7b96
1808bb3e7b96
[root@feng ~]# docker run -itd -p 5000:5000
“docker run” requires at least 1 argument(s).
See ‘docker run --help’.
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
Run a command in a new container
[root@feng ~]# docker run -itd -p 5000:5000 registry
bdd745337e7dc504b26b4df3767d17406840d40c3b7a1e76dee043b3e19b3f26
[root@feng ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bdd745337e7d registry “/entrypoint.sh /e…” 6 seconds ago Up 6 seconds 0.0.0.0:5000->5000/tcp stupefied_volhard
9a886b38506c centos “bash” 6 hours ago Exited (0) 5 hours ago
在浏览器上输入网址192.168.200.10:5000/v2/_catalog 进入网址
[root@feng ~]# curl http://192.168.200.10:5000/v2/_catalog 可以查看到推送上来的镜像
{“repositories”:[]}
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 10 hours ago 435 MB
b v23 0d120b6ccaa8 3 months ago 215 MB
centos latest 0d120b6ccaa8 3 months ago 215 MB
registry latest 2d4f4b5309b1 5 months ago 26.2 MB
[root@feng ~]# docker tag 2d4f4b5309b1 192.168.200.10:5000/registry
root@feng ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bdd745337e7d registry “/entrypoint.sh /e…” 12 minutes ago Up 12 minutes 0.0.0.0:5000->5000/tcp stupefied_volhard
9a886b38506c centos “bash” 6 hours ago Exited (0) 5 hours ago
[root@feng ~]# docker images
registry latest 2d4f4b5309b1 5 months ago 26.2 MB
[root@feng ~]# docker push 192.168.200.10:5000/registry:latest 把标记的镜像给推送到私有仓库
The push refers to a repository [192.168.200.10:5000/registry]
Get https://192.168.200.10:5000/v1/_ping: http: server gave HTTP response to HTTPS client
[root@feng ~]# vi /etc/docker/daemon.json 更改配置文件
"registry-mirrors":[“https://dhq9bx4f.mirror.aliyuncs.com”]
{
“registry-mirrors”:[“https://dhq9bx4f.mirror.aliyuncs.com”], “insecure-registries”:[“192.168.200.10:5000”]
}
“/etc/docker/daemon.json” 3L, 113C written
[root@feng ~]# systemctl restart docker 容器重启
[root@feng ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bdd745337e7d registry “/entrypoint.sh /e…” 29 minutes ago Exited (2) 5 minutes ago
[root@feng ~]# docker start bdd745337e7d
bdd745337e7d
[root@feng ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bdd745337e7d registry “/entrypoint.sh /e…” 29 minutes ago Up 21 seconds 0.0.0.0:5000->5000/t
[root@feng ~]# docker push 192.168.200.10:5000/registry:latest
The push refers to a repository [192.168.200.10:5000/registry]
b3f465d7c4d1: Pushed
a5f27630cdd9: Pushed
239a096513b5: Pushed
f5b9430e0e42: Pushed
3e207b409db3: Pushed
latest: digest: sha256:74bbdad7597dd3344bf953674ada592a997a16740ade2785073751530ef534d5 size: 1363
[root@feng ~]# curl http://192.168.200.10:5000/v2/_catalog
{“repositories”:[“registry”]}
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 10 hours ago 435 MB
b v23 0d120b6ccaa8 3 months ago 215 MB
centos latest 0d120b6ccaa8 3 months ago 215 MB
192.168.200.10:5000/registry latest 2d4f4b5309b1 5 months ago 26.2 MB
registry latest 2d4f4b5309b1 5 months ago 26.2 MB
[root@feng ~]# docker tag 0d120b6ccaa8 192.168.200.10:5000/centos
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 10 hours ago 435 MB
192.168.200.10:5000/centos latest 0d120b6ccaa8 3 months ago 215 MB
b v23 0d120b6ccaa8 3 months ago 215 MB
centos latest 0d120b6ccaa8 3 months ago 215 MB
192.168.200.10:5000/registry latest 2d4f4b5309b1 5 months ago 26.2 MB
registry latest 2d4f4b5309b1 5 months ago 26.2 MB
[root@feng ~]# docker push 192.168.200.10:5000/centos:latest
The push refers to a repository [192.168.200.10:5000/centos]
291f6e44771a: Pushed
latest: digest: sha256:bde81ad8665d5e8f10aa4c91f28eb2e663c1a31f0cc851f6637003863253d168 size: 529
[root@feng ~]# curl http://192.168.200.10:5000/v2/_catalog
{“repositories”:[“centos”,“registry”]}
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7 latest a92d858f1fbf 12 hours ago 435 MB
192.168.200.10:5000/centos latest 0d120b6ccaa8 3 months ago 215 MB
b v23 0d120b6ccaa8 3 months ago 215 MB
centos latest 0d120b6ccaa8 3 months ago 215 MB
192.168.200.10:5000/registry latest 2d4f4b5309b1 5 months ago 26.2 MB
registry latest 2d4f4b5309b1 5 months ago 26.2 MB
oot@feng ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bdd745337e7d registry “/entrypoint.sh /e…” 42 minutes ago Up 13 minutes 0.0.0.0:5000->5000/
[root@feng ~]# docker rm -f bdd745337e7d
bdd745337e7d
[root@feng ~]# docker rmi 192.168.200.10:5000/centos
Untagged: 192.168.200.10:5000/centos:latest
Untagged: 192.168.200.10:5000/centos@sha256:bde81ad8665d5e8f10aa4c91f28eb2e663c1a31f0cc851f6637003863253d168
20节点
[root@jing ~]# vi /etc/docker/daemon.json
{
“insecure-registries”:[“192.168.200.10:5000”]
}
“/etc/docker/daemon.json” 3L, 52C written
[root@jing ~]# systemctl restart docker
[root@jing ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 554c838eb3cd 2 hours ago 215 MB
[root@jing ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8308b4276441 centos “/bin/bash” 2 hours ago Exited (0) 15 minutes ago ccc
[root@jing ~]# docker rmi centos
Untagged: centos:latest
Deleted: sha256:554c838eb3cd7dfb407e8b6cf9955b1a29bc450a131f2ad63c803fa6cdf8db39
Deleted: sha256:042bab254b1f930767ae28dc00426c5cbb3c0b637a7c850252ee738bbe36b5ec
[root@jing ~]# docker pull 192.168.200.10:5000/centos
[root@jing ~]# curl 192.168.200.10:5000/v2/_catalog
{“repositories”:[“centos”]}