美文网首页learning
小白docker入门一

小白docker入门一

作者: QTong | 来源:发表于2019-01-04 21:10 被阅读0次

一 安装docker(CeneOS 7 )

1.卸载

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

2.安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

3. 增加repo(阿里云的repo 国内推荐 )

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast

4. 安装docker-CE (还有个docker-EE自己用不到)

yum -y install docker-ce
#这一步如果实在Centos6 会报错 因为repo中的包都是7的

5.启动docker

systemctl start docker


二 docker 实验()


2.1 helloworld (本地镜像中没有 会自动区镜像资源池中下载)

docker run hello-world
docker run -d --name=web -p 80:80 nginx:latest

2.2 查看本地镜像

docker images

docker image ls

image

2.3 查找公共镜像

docker search mongo

2.4 拉取镜像

docker pull mongo:3.6

2.5 启动容器

docker run --name mongo3_6 -p 27401:27017 -v /website/mongo181215/db:/data/db -v /website/mongo181215/configdb:/data/configdb -e MONGO_INITDB_ROOT_USERNAME=abcusename -e MONGO_INITDB_ROOT_PASSWORD=abcpasswd -d mongo:3.6

--name 这个Container的名字随意定义 ,如果有重复会提醒

-p 1:2 宿主机端口1,Cotainer内部的端口为2

-v /website/mongo181205/configdb:/data/configdb 映射属组机文目录 /website/mongo181205/configdb到 容器的/data/configdb

-e MONGO_INITDB_ROOT_USERNAME=abcusename 设置环境变量

-d 在后台运行容器并打印 容器ID
-i 只显示信息不打开伪终端
-t 打开伪终端 类似putty(一般it一起用)

docker cp /website/ 749056ea1637:/opt 宿主机到镜像的cp

删除所有的镜像和容器

Delete all containers

docker rm $(docker ps -a -q)

Delete all images

docker rmi $(docker images -q)

进入 container

docker exec -it centos7 /bin/bash


三 用自己的镜像库启动服务

docker login --username=abc@163.com registry.cn-beijing.aliyuncs.com
docker logout
缺一个查看镜像库中镜像列表的命令

docker pull registry.cn-beijing.aliyuncs.com/abc/qhsupply:latest

docker run -p 8001:8001 --name qhsupply -t registry.cn-beijing.aliyuncs.com/abc/qhsupply:latest

启动的时候有可能报错各种占用 端口 名字等等

使用 docker ps -a 可以现在的所有容器情况 启动与未启动的都能看到

image

然后根据自己需要删除容器docker -rm ID/NAME

也可以 docker start ID/NAME、 docker stop ID/NAME 启停在容器列表中的容器

启动之后发现有问题没有真正启动起来使用-t 查看发现试没有连上mongo(同一台宿主机的另一个容器),连接信息在镜像的application.yml中

不在同一宿主机可以直接通过宿主机IP访问

docker inspec IMAGEID 或docker inspec IMAGEREPOSITORY:TAG 可以查看 镜像的信息

发现了"UpperDir": "/var/lib/docker/overlay2/abcd00xxx/diff" 下的app下是程序代码

找到yml 直接更改 端口及IP (宿主机 ifconfig的docker网卡ip或者宿主机自己的内网IP)

创建并push镜像:参见 https://docker_practice.gitee.io/image/build.html
通过docker file bulid
1.找一个空目录

mkdir ~/test
cd ~/test

2.创建entry.sh

#!/bin/bash
nohup /usr/bin/Xvfb :99 -screen 0 $RESOLUTION -ac +extension GLX +render -noreset > /dev/null 2>&1 &
nohup startxfce4 > /dev/null 2>&1 &
nohup x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :99 -forever -bg -rfbauth /home/alpine/.vnc/passwd -users alpine -rfbport 5900 > /dev/null 2>&1 &
nohup /home/alpine/noVNC/utils/launch.sh --vnc localhost:5900 > /dev/null 2>&1 &
/bin/bash

3.创建dockerfile文件 方法参见上链接

FROM alpine:edge
LABEL maintainer="Jan Kuri <jan@bleenco.com>"
ENV DISPLAY :99
ENV RESOLUTION 1920x1080x24
RUN  echo -e "http://mirrors.aliyun.com/alpine/edge/main\nhttp://mirrors.aliyun.com/alpine/edge/community\nhttp://mirrors.aliyun.com/alpine/edge/testing" > /etc/apk/repositories \
    && apk add --no-cache ca-certificates python curl openssl sudo xvfb x11vnc xfce4 faenza-icon-theme bash \
    && adduser -h /home/alpine -s /bin/bash -S -D alpine && echo -e "alpine\nalpine" | passwd alpine \
    && echo 'alpine ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER alpine
WORKDIR /home/alpine
COPY entry.sh /entry.sh
COPY noVNC.tar /home/alpine/
RUN mkdir -p /home/alpine/.vnc && x11vnc -storepasswd alpine /home/alpine/.vnc/passwd \
    && tar xf /home/alpine/noVNC.tar -C /home/alpine/ \
    && rm -rf /home/alpine/noVNC.tar
CMD [ "/bin/bash", "/entry.sh" ]

4.执行构建命令

#构建的时候可以从现在运行的容器中创建
 docker commit -m="A new custom image" --author="qtong" b437ffe4d630 test/apache2:webserve
docker build -t alpine-xfce4:v1 . 
#docker build -t registry-vpc.cn-beijing.aliyuncs.com/abcd/alpine-xfce4:v1 . 

5.push到镜像库

docker push alpine-xfce4:v1
#docker push registry-vpc.cn-beijing.aliyuncs.com/abcd/alpine-xfce4:v1

配置远程连接 远程安全控制
https://docs.docker.com/engine/security/https/#create-a-ca-server-and-client-keys-with-openssl
docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=QT:2376 version
curl https://QT:2376/images/json --cert ./cert.pem --key ./key.pem --cacert ./ca.pem

详细docker命令见下链接

https://docs.docker.com/edge/engine/reference/commandline/docker/

相关文章

网友评论

    本文标题:小白docker入门一

    本文链接:https://www.haomeiwen.com/subject/mlqcrqtx.html