首页 > 其他 > 详细

docker的安装和基本管理

时间:2020-10-21 12:14:36      阅读:30      评论:0      收藏:0      [点我收藏+]

1、安装docker
yum -y install docker-ce #docker-ee企业版

启动docker
systemctl start docker

docker pull nginx:1.14 拉取镜像

查看镜像
docker image ls
查看镜像的id
docker image ls -q

导入导出镜像
docker image save >/tmp.nginx-1.14.tar
docker image load -i /tmp/nginx-1.14.tar


修改镜像标签
docker image 0b9e4e67d3b0 centos:v2

交互式启动docker
docker container run -it centos --name=‘contos76‘ #-i交互,-t启动一个终端

查看正在运行的容器
docker container ls

查看所有的容器
docker container ls -a

非交互式启动
docker run -d --name=‘nginx‘ nginx-1.14

查看docker的详细信息
docker container inspect 9bb341f9fe8f

删除docker
docker container rm 9bb341f9fe8f


运营docker退出后自动删除容器残余
docker container run -it --name=‘nginx‘ --rm nginx-1.14

启动已存在容器并后台运行
docker container start 9bb341f9fe8f # docker container start -i 9bb341f9fe8f 启动容器并交互登陆

停止容器#有残余
docker container stop 9bb341f9fe8f


容器的连接方式:
docker container attach centos #软连接方式 如果有两个终端同时登陆 可以看到彼此的操作,一个退出 另一个同时也退出
docker container exec -it centos /bin/bash #子进程方式登陆

容器交互方式登陆 执行ctrl +pq 切换回宿主机

docker容器的网络访问(指定映射,docker会自动添加一条iptables规则来实现端口的映射)
-p hostport:containerport
-p ip:hostport:containerport
-p ip::containerport #随机端口
-p hostport:containerport/udp
-p 81:80 -p 443:443


docker ps -a -q 等价 docker container ls -a -q

查看docker日志
docker container log -tf 9bb341f9fe8f #类似tail -f 详细显示日志
docker container log -tf 9bb341f9fe8f --tail -10 #查看最后10行日志

宿主机和docker容器文件互相拷贝(n1:容器名)
docker container cp 宿主机文件 n1:container文件 #将宿主机文件拷贝到容器中
docker container n1:container文件 宿主机文件 #将容器文件拷贝到宿主机文件中

数据持久化::
docker container run --name=‘nginx‘ -d -p 80:80 -v /opt/html:/usr/share/nginx/html -v /opt/a:/usr/share/nginx/a centos:6.9

使用数据卷容器:
#创建数据券容器
docker container run -d --name=‘volum_1‘ -v /opt/hxy/a:/opt/a -v /opt/hxy/b:/opt/b nginx:1.14

使用容器券
docker container run -d --volumns-from volum_1 -p 8050:80 --name=‘n8080‘ nginx

创建容器:
创建带有sshd功能的容器
docker container run -itd --name=centos7 --privileged=true centos:7 /usr/sbin/init
docker exec -it centos7 /bin/bash
yum -y install openssh-server.x86_64

创建
docker container commit centos7 hxy/centos:7.8_v1
运行容器
docker container run -it --privileged=true hxy/centos:7.8_v1 /usr/bin/ssh -D #前台运行

 

创建dockerfile 企业级镜像
mkdir -p /opt/dockerfile/centos6.9_sshd
vim dockerfile
#centos6.9-sshd-v1
FROM centos6.9
RUN mkdir -p /opt/a
["mysqld","--initialize-insecure","--user=mysql","--basedir=/usr/local/mysql"]
EXPOSE 22
COPY index.html /opt/html/ #将本地文件传入容器中
ADD bbs.tar.gz /opt/html/ #将本地tar文件传入容器中并自动解压
CMD ["/usr/sbin/sshd","-D"]

运行dockerfile,在dockerfile当前目录下执行
docker build -t "centos_ssh_v1" ./

docker软件重启后,镜像随之重启
docker run -d --restart=always --name="hxy_nginx" nginx

 

创建docker本地镜像仓库

创建镜像仓库
docker run -d -p:5000:5000 --name my_registries --restart=always -v /opt/registry /var/lib/registry registry
修改配置文件,从而修改拉取镜像的地址:
"insecure-registries":["192.168.222.90:5000"]
创建镜像
docker tag nginx:latest 192.168.222.90:5000/hxy/nginx:v1

将镜像推到本地仓库
docker push 192.168.222.90:5000/hxy/nginx:v1

在其他服务器上下载register镜像
修改配置文件
[root@hyy docker]# cat daemon.json
{
"insecure-registries":["192.168.222.90:5000"]
}
重启docker
systemctl restart docker
拉取镜像
docker pull 192.168.222.90:5000/hxy/nginx:v1
启动镜像
docker run -d --name nginx-v1 --restart=always -p 192.168.222.91:80:80 295c7be07902


registry 加密
yum -y install httpd-tools
mkdir -p /opt/registry-auth
htpasswd -Bbn hxy 123 >/opt/registry-auth/htpasswd

重启registry容器
docker run -d -p:5000:5000 --name my_registries1 --restart=always -v /opt/registry /var/lib/registry -v /opt/registry-auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry

docker login 192.168.222.90:5000

docker push 192.168.222.90:5000/hxy/nginx:v1

创建macvlan
docker network create --driver macvlan --subnet=10.0.0.0/24 --gateway=10.0.0.254 -o parent=eth0 macvlan_1
docker run -it --network macvlan_1 --ip=10.0.0.10 centos:6.9 /bin/bash

删除退出状态的容器
docker container rm $(docker ps -q -f status=exited)

docker 跨主机访问网络形式:overlay
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
添加配置信息
vim daemon.json
{
"hosts":["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"],
"cluster-store":"consil://192.168.222.90:8500",
"cluster-advertise":"0.0.0.0:2376"
}

systemctl daemon-reload
systemctl restart docker

创建overlay 网络#只需在一个节点执行就行 其他节点都可以看到此网络模型
docker network create -d overlay --subnet=172.16.0.0/24 --gateway=172.16.0.254 oll

启动容器测试:
docker run -it --name hxy --network oll busbox /bin/bash

docker的安装和基本管理

原文:https://www.cnblogs.com/hhaahh/p/13851249.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!