博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker的基本使用
阅读量:5995 次
发布时间:2019-06-20

本文共 5108 字,大约阅读时间需要 17 分钟。

Docker在Linux中的安装

一、rpm离线安装docker17.12

1.下载docker安装包

在下载docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm

2.下载9个依赖

在下载8个依赖

audit-libs-python-2.7.6-3.el7.x86_64.rpm
checkpolicy-2.5-4.el7.x86_64.rpm
libcgroup-0.41-13.el7.x86_64.rpm
libseccomp-2.3.1-3.el7.x86_64.rpm
libsemanage-python-2.5-8.el7.x86_64.rpm
policycoreutils-python-2.5-17.1.el7.x86_64.rpm
python-IPy-0.75-6.el7.noarch.rpm
setools-libs-3.3.8-1.1.el7.x86_64.rpm

在下载container-selinux-2.9-4.el7.noarch.rpm

rpm -ivh /root/docker/*.rpm –nodeps –force

curl -sSL | sh -

启动Docker引擎

sudo systemctl enable docker

sudo systemctl start docker

建立docker用户组

sudo groupadd docker

将用户加入docker组

sudo usermod -aG docker $USER

这里使用阿里云的容器镜像服务,目前公测,免费的。

1) 去阿里云官网,登录控制台,在产品与服务里面找到容器镜像服务
2)点击开通
3) 点击镜像加速器,变有了加速地址(不用镜像加速器的话,镜像都是国外的,因为墙,所有下载是龟速)

镜像加速器

vi /etc/systemd/system/multi-user.target.wants/docker.service

ExecStart=/usr/bin/dockerd –registry-mirror=https://….mi
rror.aliyuncs.com

sudo systemctl daemon-reload

sudo systemctl restart docker

检查加速器是否生效

sudo ps -ef | grep dockerd

root 5346 1 0 19:03 ? 00:00:00 /usr/bin/dockerd
–registry-mirror=

docker -v

systemctl start docker

验证 docker 是否安装成功并在容器中执行一个测试的镜像

docker run ubuntu echo hello docker

docker run nginx

docker run -p 8080:80 -d nginx

[root@test3 share]# docker cp index.html

[root@test3 share]# docker commit -m ‘fun’ d0e976512485 nginx-fun

删除镜像

docker rmi IMAGE ID

查看镜像

docker images

docker ps -a

小结

命令 用途
docker pull 获取image
docker build 创建image
docker images 列出image
docker run 运行container
docker ps 列出container
docker rm 删除container
docker rmi 删除image
docker cp 在host 和container之间拷贝文件
docker commit 保存改动为新的image

Dockerfile语法

FROM alpine:latest

MAINTAINER hsiehchou
CMD echo ‘hello docker’

touch Dockerfile

++++++++++++++++++++++++++++++++++++++++

FROM ubuntu
MAINTAINER hsiehchou
RUN sed -i ‘s/archive.ubuntu.com/mirros.ustc.edu.cn/g’ /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT [“/usr/sbin/nginx”, “-g”, “daemon off;”]前台运行
EXPOSE 80

docker build -t hsiehchou/hello-nginx .

docker run -d -p 80:80 hsiehchou/hello-nginx

小结

命令 用途
FROM base image
RUN 执行命令
ADD 添加文件
COPY 拷贝文件
CMD 执行命令
EXPOSE 暴露端口
WORKDIR 指定路径
MIANTAINER 维护者
ENV 设定环境变量
ENVRYPOINT 容器入口
USER 指定用户
VOLUME mount point

镜像分层

Dockerfile中的每一行都产生一个新层

Volume

提供独立于容器之外的持久化存储

docker run -d –name nginx -v /usr/share/nginx/html nginx

docker exec -it nginx /bin/bash

docker run -v $PWD/html:/usr/share/nginx/html nginx

++++++++++++++++++++++++++++

docker create -v $PWD/data:/var /mydata –name data_container ubuntu

docker run -it –volumes-from data_container ubuntu /bin/bash

mount

Registry

镜像仓库

术语

English 中文
host 宿主机
image 镜像
container 容器
registry 仓库
daemon 守护程序
client 客户端

docker search whalesay

docker pull docker/whalesay
docker push myname/whalesay

国内的一些仓库

daocloud
时速云
aliyun

[root@test3 dockerfiler2]# docker run docker/whalesay cowsay Docker你好!

docker tag docker/whalesay hch/whalesay

curl -L -m) > /usr/local/bin/docker-compose

docker-compose.yml常用命令

命令 用途
build 本地创建镜像
command 覆盖缺省命令
depends_on 连接容器
ports 暴露端口
volumes
image pull镜像

docker-compose命令

命令 用途
up 启动服务
stop 停止服务
rm 删除服务中的各个容器
logs 观察各个容器的日志
ps 列出服务相关的容器

docker基本命令

docker ps :查看正在运行的容器

docker images:查看现有的镜像
docker logs: 查看某个容器的日志
docker run: 运行某个容器
docker inspect:查看某个容器
docker exec:进入某个容器
docker start/stop:启动或者停止某个容器

[root@test3 hadoop-docker]# touch Dockerfile

[root@test3 hadoop-docker]# ll
total 0
-rw-r–r– 1 root root 0 Feb 27 19:18 Dockerfile
[root@test3 hadoop-docker]# vim Dockerfile

 
FROM ubuntu:14.04
MAINTAINER hsiehchou
WORKDIR /root
# install openssh-server, openjdk and wget
RUN apt-get update && apt-get install -y openssh-server openjdk-7-jdk wget
# install hadoop 2.7.2
RUN wget https://github.com/kiwenlau/compile-hadoop/release/download/2.7.2/hadoop-2.7.2.tar.gz && \
tar -zxvf hadoop-2.7.2.tar.gz && \
mv hadoop-2.7.2 /usr/local/hadoop && \
rm hadoop-2.7.2.tar.gz
# set environment variable
ENV JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd-64
ENV HADOOP_HOME=/usr/local/hadoop
ENV PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
# ssh without key
RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -p '' && \
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
RUN mkdir -p ~/hdfs/namenode && \
mkdir -p ~/hdfs/datanode && \
mkdir $HADOOP_HOME/logs
COPY config/* /tmp/
RUN mv /tmp/ssh_config ~/.ssh/config && \
mv /tmp/hadoop-env.sh /usr/local/hadoop/etc/hadoop/hadoop-env.sh && \
mv /tmp/hdfs-site.xml $HADOOP_HOME/etc/hadoop/hdfs-site.xml && \
mv /tmp/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml && \
mv /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml && \
mv /tmp/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml && \
mv /tmp/slaves $HADOOP_HOME/etc/hadoop/slaves && \
mv /tmp/start-hadoop.sh ~/start-hadoop.ssh && \
mv /tmp/run-wordcount.sh ~/run-wordcount.sh
RUN chmod +x ~/start-hadoop.sh && \
chmod +x ~/run-wordcount.sh && \
chmod +x $HADOOP_HOME/sbin/start-dfs.sh && \
chmod +x $HADOOP_HOME/sbin/start-yarn.sh
# format namenode
RUN /usr/local/hadoop/bin/hdfs namenode -format
CMD ["sh", "-c", "service ssh start: bash"]

转载于:https://www.cnblogs.com/hsiehchou/p/10479047.html

你可能感兴趣的文章
《Windows核心编程》学习笔记(5)– 创建进程,结束进程,创建独立的子进程
查看>>
photoshop CS2 笔记
查看>>
每周优秀代码赏析系列【一】----LINQ In Javascript
查看>>
15 个最新的 CSS3 教程
查看>>
Mac OS 10.6(Snow Leopard)编译Android源代码
查看>>
最小生成树练习。。。
查看>>
负载均衡原理与实践详解 第六篇 健康检查机制详解(上)
查看>>
MapControl和PageLayoutControl同步(2)
查看>>
taglist
查看>>
UITabBarController 的使用
查看>>
卡特兰数
查看>>
epoll实现机制分析
查看>>
windows 2008 r2 安装TabsStudio
查看>>
级联分类器训练
查看>>
linux下日语语言包安装
查看>>
Java内存回收 - 落日之心的日志 - 网易博客
查看>>
微软BI 之SSIS 系列 - 导出数据到 Excel 2013 的实现
查看>>
相互独立和互不相融 互拆 对立
查看>>
php 学习路线 赵兴壮2014年4月28 日 加油
查看>>
高精确度且线程分离的定时器——多媒体定时器
查看>>