linux 操作docker的基本命令docker仓库
基本操作命令
docker run --name=test-host -itd centos7.6 /bin/bash 通过镜像创建容器
登录容器
[root@docker101 ~]# docker exec -it test-host /bin/bash (exec是执行,i是交互式。t叫tty)
或者container id
[root@docker101 ~]# docker exec -it 0d371349d2ef /bin/bash
docker search 172.16.8.100:5000/centos 查询服务器镜像
docker pull 172.16.8.100:5000/centos7 拉去服务器镜像
docker images 查询本地镜像
docker tag 修改镜像名称
[root@docker ~]# docker inspect nginx 获取镜像的元数据
docker push 上传数据
docker rmi 删除镜像
docker run --name=web1 -d nginx 运行容器
只显示运行中容器
docker ps
显示所有容器
docker ps --all
docker stop web1 (容器名字)
docker start web1 (启动容器)
docker pause web1(容器名字) 挂起web1
docker kill web 1 (容器名字) 杀死web1
docker rm web (容器运行状态删不掉) docker rm -f web (强制删除)
docker仓库
Registry Server
服务端(仓库端): 10.0.0.103
[root@docker103 ~]# docker pull registry (下载仓库)
[root@docker103 ~]# docker run --name registry_server -d -p 5000:5000 registry (运行仓库指定端口)
客户端:
docker软件安装
[root@docker101 ~]# vim /usr/lib/systemd/system/docker.service
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 10.0.0.103:5000 信任本地的仓库,免验证
重启服务 xiiu改完了,要重新加载启动一些服务
[root@docker101 ~]# systemctl daemon-reload
[root@docker101 ~]# systemctl restart docker
修改需要上传镜像名称:
[root@docker101 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE robinround/centos7.6 latest 0429a3daccd0 13 months ago 433MB vitotp/centos7.6 latest 0429a3daccd0 13 months ago 433MB
修改标签
[root@docker101 ~]# docker tag vitotp/centos7.6 10.0.0.103:5000/centos7.6
上传
[root@docker101 ~]# docker push 10.0.0.103:5000/centos7.6
doocker 仓库里的镜像下载方法
查询私有仓库内的镜像
[root@docker102 ~]# curl -XGET http://10.0.0.103:5000/v2/_catalog
{"repositories":["centos7.6"]}
查询标签列表
[root@docker102 ~]# curl -XGET http://10.0.0.103:5000/v2/centos7.6/tags/list
{"name":"centos7.6","tags":["latest"]}
docker pull 10.0.0.103:5000/centos:7.6 下载docker仓库里的centos
harbor
harbor的部署
更换华为yum安装源
[root@master ~]# mkdir /etc/yum.repos.d/old
[root@master ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/old/
[root@master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
[root@master ~]# yum makecache fast
安装扩展源
[root@master ~]# yum install epel-release.noarch
安装docker-ce源
[root@master ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
[root@master ~]# yum install docker-ce
[root@master ~]# yum install docker-compose
启动docker
[root@master ~]# systemctl restart docker
安装harbor
https://github.com/vmware/harbor/releases
安装有两种方式,一种是off-line ,一种是on-line,即离线和在线安装,离线安装需要下载的安装包较大,在线安装下载的安装包很小,可以根据自己的情况选择,我选择的是harbor-online-installer-v2.0.0.tgz 版本
[root@master ~]# tar -xvf harbor-online-installer-v2.0.0.tgz;cd harbor/
拷贝配置文件
[root@master harbor]# cp harbor.yml.tmpl harbor.yml
配置https:harbor默认工作方式是http,但是这只能在页面访问,默认harbor推送拉取镜像时走的是https,所以需要配置下https。
1.需要的文件:
1. master.crt:服务器端的证书文件
2. master.key:服务器端的秘钥
3. ca.crt:客户端的证书文件
2.生成ca秘钥和自签名ca证书:
[root@master harbor]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:EAST
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:master.com
Email Address []:
3.生成证书签名请求(域名访问,就把common name的值写为域名):
[root@master harbor]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout master.com.key -out master.com.csr
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:EAST
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:master.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
4.生成证书
[root@master harbor]# openssl x509 -req -days 365 -in master.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out master.com.crt
Signature ok
subject=/C=CN/ST=BJ/L=BJ/O=EAST/OU=IT/CN=master.com
Getting CA Private Key
5.将harbor目录移动到/etc下
[root@master ~]# cp -r /root/harbor /etc/
6.配置证书和私钥文件位置
[root@master ~]# vim /etc/harbor/harbor.yml
7.执行install.sh安装harbor
[root@master ~]# /etc/harbor/install.sh
成功后:
? ----Harbor has been installed and started successfully.----
8.
访问:https://192.168.0.200/harbor
置下host,打开浏览器就可以用https访问了
默认账号是 admin 密码 Harbor12345
9.docker登录
首先配置host,然后在 /etc/docker/certs.d目录下创建目录,目录名称就是配置的hostname。然后将客户端证书放入该目录即可。
[root@master ~]# mkdir -p /etc/docker/certs.d/master.com
[root@master ~]# cp /etc/harbor/ca.crt /etc/docker/certs.d/master.com
[root@master ~]# docker login master.com
Username: admin
Password: Harbor12345
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
docker login | Docker Docs
Login Succeeded
10.docker推送镜像:
登录harbor,可以看到有一个预置的项目,library。
11.测试推送
[root@master ~]# docker pull lanvv/centos7.5-yum
[root@master ~]# docker tag lanvv/centos7.5-yum master.com/library/centos7.5
[root@master ~]# docker push master.com/library/centos7.5
The push refers to repository [master.com/library/centos7.5]
214ee3fcbf95: Pushed
1d31b5806ba4: Pushed
latest: digest: sha256:8b6ce104f680f69dd67443068fd92d1692e8eb707d80dbefdff7232570aa907d size: 737
已上传成功