Docker基本使用

目录

Docker在Linux中的安装

一、rpm离线安装docker17.12
1.下载docker安装包

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/下载docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm

2.下载9个依赖

http://mirrors.163.com/centos/7/os/x86_64/Packages/下载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

http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=1&dl=40&search=container-selinux&field[]=1&field[]=2下载container-selinux-2.9-4.el7.noarch.rpm

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

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | 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=https:/******.mirror.aliyuncs.com

docker -v

systemctl start docker

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

docker run nginx

docker run -p 8080:80 -d nginx
http://192.168.116.104:8080/

[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

小结

命令用途
FROMbase image
RUN执行命令
ADD添加文件
COPY拷贝文件
CMD执行命令
EXPOSE暴露端口
WORKDIR指定路径
MIANTAINER维护者
ENV设定环境变量
ENVRYPOINT容器入口
USER指定用户
VOLUMEmount 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 https://github.com/docker/compose/releases/download/1.9.0/docker-compose-(uname -m) > /usr/local/bin/docker-compose

docker-compose.yml常用命令

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

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"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hsiehchou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值