docker简单部署

docker 安装部署-yun

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 yum install -y docker-ce 
 yum list docker
 service docker start
 ps -ef|grep docker  
  docker version


docker-ce.repo源:
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

概念:

1)学习Docker企业应用之前,必须掌握Docker三个核心概念:

n 镜像

镜像中包含了各种应用程序、软件服务、数据等内容的模板文件,是静止、只读的,不能被修改,类似Linux系统ISO镜像文件,是用于启动Docker容器(轻量级的虚拟机)。

n 容器

基于镜像运行之后的实例,没有镜像就没有容器,容器是可读、可写的,容器启动之后一直需要底层镜像的,镜像文件不能删除的。容器所需的数据、文件可以从镜像模板中读取和调用,镜像是容器系统的底层基石。

n 仓库

仓库是用于存储Docker镜像(静态模板文件)的地方,仓库一般分为公共仓库、私有仓库,企业测试环境、生产环境推荐自建私有仓库,不推荐使用公共仓库(外网仓库)。 基于Docker虚拟化平台,启动一台Nginx WEB应用容器(轻量级的虚拟机),Nginx应用容器只包含Nginx软件服务,要求直接启动Nginx WEB服务,并且监听80端口,用户通过浏览器能够访问Nginx默认网站代码

 

简单操作

Run,全新创建一台容器;
-i,interactive交互模式;
-t,tty打开登陆终端;
-d,detach后台运行、启动;
-p,publish发布端口,将宿主机80(第一个)DNAT映射至容器的80;
docker search nginx
docker pull docker.io/nginx

ll /var/lib/docker/imges/
docker images
docker images|grep nginx

docler run -itd -p 80:80 nginx
docker ps 
查看容器IP
docker ps|awk NR>1 '{print $1}'
for i in `docker ps|awk NR>1 '{print $1}'`;do echo $i;docker inspect $i|grep -i ipaddr|awk -F\" '{print $4}'|tail -1;done|sed 'N;s/\n/,/g'
for i in `docker pa|awk NR>1 '{print $1}'`;do echo $i;docker inspect $i|grep -i ipaddr|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"|tail -1;done|sed 'N;s/\n/ /g'
for i in `docker pa|awk NR>1 '{print $1}'`;do echo $i;docker inspect $i|grep -i ipaddr|grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"|tail -1;done|sed 'N;s/\n/,/g'
for i in `docker pa|awk NR>1 '{print $1}'`;do echo $i;docker inspect $i|grep -i ipaddr|sed 's/"//g;s/,//g;s/://g;s/IPAddress//g;s/ //g'|tail -1;done
docker inspect ddec2321112a|grep -i ipaddr|tail -1|sed 's/"//g;s/,//g;s/://g;s/IPAddress//g;s/ //g'

批量启动100容器
for i in `seq 0 99`;do docker run -itd -p 80$i:80 nginx;done

删除
docker rm -f ddec2321112a
for i in `docker ps|awk NR>1 '{print $1}`';do docker rm -f $i;done

 

导入镜像 先上传镜像
docker load < nginx.tar

进入容器
docker exec -it ddec2321112a /bin/bash
find / -name nginx.conf
docker cp ddec2321112a:/etc/nginx/nginx.conf ./
docker cp nginx.conf ddec2321112a:/etc/nginx/

wget www.baidu.com
docker cp index.html ddec2321112a:/usr/share/nginx/html/

重启容器
docker restart ddec2321112a
 
基于Docker启动CentOS(Guest OS)容器
给docker加个速:vim /etc/docker/daemon.json 添加如下内容,然后重启docker服务

{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com",
    "https://registry.docker-cn.com"
  ]
}       

 

搜索centos镜像
docker search centos docker pull docker.io
/ansible/centos7-ansible docker images|grep centos docker run -itd -p 6022:22 --privileged docker.io/jdeathe/centos-ssh docker ps 查看IP地址 docker inspect 430cf15e57d4|grep -i ipaddr|tail -1|awk -F\" '{print $4}' docker inspect 430cf15e57d4|grep -i ipaddr|tail -1|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" docker虚拟机需要启动sshd服务: docker exec -it 430cf15e57d4 /bin/bash yum install openssh-server rpm -qa|grep openssl 启动 /usr/sbin/sshd 可能会报错:(以下内容为虚拟机没有这三文件) [root@507c1cad6814 /]# /usr/sbin/sshd Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_ecdsa_key Could not load host key: /etc/ssh/ssh_host_ed25519_key sshd: no hostkeys available -- exiting. 解决方法:(退出虚拟容器,从宿主机拷贝进来即可) [root@localhost ssh]# docker cp ssh_host_rsa_key 507c1cad6814:/etc/ssh/ [root@localhost ssh]# docker cp ssh_host_ecdsa_key 507c1cad6814:/etc/ssh/ [root@localhost ssh]# docker cp ssh_host_ed25519_key 507c1cad6814:/etc/ssh/ 重新进入容器:430cf15e57d4为IP docker exec -it 430cf15e57d4 /bin/bash /usr/sbin/sshd ps -ef|grep ssh netstat -nutlp 此时22端口以起来了,但是不知道密码,修改下为1,IP是宿主机IP,用户root passwd 1 1

 

 

 

Docker镜像制作方法
#将一个容器导出成为一个tar包镜像(丢失容器内存中指令);
docker export c090c6b55449 > centos7-ssh-v1.tar  (export会丢失某些内容)
docker save af209728ef8e >centos7-ssh.tar
#将centos7-ssh-v1.tar导入Docker镜像列表;
cat centos7-ssh-v1.tar|docker import - centos7-ssh-v1
#基于导入的centos7-ssh-v1创建新的虚拟机;
docker run -itd --privileged -p 6024:22 -p 83:80 centos7-ssh-v1
#让启动的CentOS虚拟机,能够在前台一直运行(永不退出);
docker run -itd --privileged -p 6024:22 -p 83:80 centos7-ssh-v1 /bin/bash
docker run -itd --privileged -p 6025:22 -p 84:80 centos7-ssh-v1 sleep 9999d

 

posted on 2020-10-11 18:59  蜂蜜log  阅读(124)  评论(0编辑  收藏  举报

导航