docker使用基础(一)
1、我们需要掌握docker的简单安装使用;
2、镜像管理、镜像解包成容器,打标签;
3、容器管理、容器打包成镜像,进入容器;
4、查看容器运行时日志;
5、docker的磁盘占用情况;
6、将本地容器推送到dockerHub远端仓库;
一、docker安装
yum install -y docker
systemctl start docker.service
systemctl enable docker.service
docker version
(1)、配置docker国内镜像
vim etc/docker/daemon.json(没有时新建该文件)
{
"registry-mirrors": [
"https://d8b3zdiw.mirror.aliyuncs.com",
"https://reg-mirror.qiniu.com",
"http://hub-mirror.c.163.com"
]
}
(2)、重启docker并验证云端是否可以正常访问
systemctl daemon-reload //重新加载配置文件
systemctl restart docker
docker run hello-world
二、Dockerfile(下载镜像和构建上层容器)
1、先增加一个项目文件夹,名字随意,进入该文件夹并且在该文件夹下新建文件Dockerfile,内容如下(其实这是esayswoole官网上面的一个Dockerfile,我们把他拿过来直接使用学习也可以):
FROM centos:7
#version defined
ENV SWOOLE_VERSION 4.4.12
ENV EASYSWOOLE_VERSION 3.x-dev
#install libs
RUN yum install -y curl zip unzip wget openssl-devel gcc-c++ make autoconf
#install php
RUN yum install -y epel-release
RUN rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
RUN yum clean all
RUN yum update -y
RUN yum install -y php71w-devel php71w-openssl php71w-mbstring
# composer
RUN curl -sS https://install.phpcomposer.com/installer | php \
&& mv composer.phar usr/bin/composer
# use aliyun composer
RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# swoole ext
RUN wget https://github.com/swoole/swoole-src/archive/v${SWOOLE_VERSION}.tar.gz -O swoole.tar.gz \
&& mkdir -p swoole \
&& tar -xf swoole.tar.gz -C swoole --strip-compOnents=1 \
&& rm swoole.tar.gz \
&& ( \
cd swoole \
&& phpize \
&& ./configure --enable-openssl \
&& make \
&& make install \
) \
&& sed -i "2i extension=swoole.so" etc/php.ini \
&& rm -r swoole
# Dir
WORKDIR /easyswoole
# install easyswoole
RUN cd easyswoole \
&& composer require easyswoole/easyswoole=${EASYSWOOLE_VERSION} \
&& php vendor/bin/easyswoole install
EXPOSE 9501
2、根据Dockerfile构建image,再根据image解包container.docker build -t easyswoole:1.0 . //构建docker镜像
docker run -itd -p 9501:9501 --name easyswoole easyswoole:1.0 /bin/bash //将镜像解包成容器,映射容器端口:本地端口,并运行
(1)、用docker构建nginx服务
docker search nginx
docker pull nginx:latest//最近的,最新的
docker images //列出镜像
docker image ls //列出镜像
docker image ls easyswoole //列出easyswoole的镜像
docker images ls -f dangling=true //悬浮镜像
docker image prune //清理悬浮镜像
docker image ls -a //中间镜像显示
docker rmi <镜像ID> //可以删除镜像
docker run --name nginx-test -p 8081:80 -d nginx
参数说明:
–name nginx-test:容器名称。
-p 8080:80:端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。
-d nginx:设置容器在在后台一直运行。
三、容器管理
docker run -it -p 9501:9501 --name easyswoole easyswoole:1.0
-i: 交互式操作。
-t: 终端。
-d:后台运行
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-v: 绑定一个卷或目录
-e:设置环境变量,如可设置mysql密码-e MYSQL_ROOT_PASSWORD=123456;
php vendor/bin/easyswoole start d //以后台运行该程序
php vendor/bin/easyswoole stop
A、容器查看
docker ps -a //查看可以运行的所有容器
docker ps //查看正在运行的容器
B、容器的更新和删除
i.删除
docker rm -f <容器ID> /删除单个容器
docker container prune //清理所有处于终止状态的容器
ii.启动
docker start <容器ID> //启动单个容器
docker exec -it <容器ID> /bin/bash //退出容器终端,不会导致容器的停止
docker attach <容器ID> //退出容器终端,会导致容器的停止
C、容器运行日志
docker logs –tail 10 -tf <容器ID> //查看
D、容器打包成镜像
docker commit -a "liyb" -m "nginx" <容器ID> <仓库名称:标签>
docker commit -a "liyb" -m "测试使用的demo,是一个Nginx镜像,删除即可" 72595793d360 test:1.0
可以加的参数:
-a:提交的镜像作者;
-c:使用Dockerfile指令来创建镜像;
-m:提交时的说明文字;
-p:在commit时,将容器暂停;
四、docker账户和云端镜像
去该网站申请一个账号https://hub.docker.com/,用申请到的账号登录,创建一个Repositories。
docker login
docker logout
(1)、将本地镜像,将其归为某一仓库
docker tag test:1.0 wuliaomumulin/test:1.0
(2)、推送到远端
docker push wuliaomumulin/test:1.0
(3)、从远端拉取仓库
docker pull wuliaomumulin/test:1.0
如果想要删除dockerHub的仓库的话,很简单,直接去仓库页面下面,点击导航栏的Settings下面的delete Repository即可。
五、杂项
docker rm/rmi -f //删除指定容器或镜像
编辑配置文件 /etc/systemd/system/multi-user.target.wants/docker.service ,在环境变量 ExecStart后面添加 -H tcp://0.0.0.0,允许来自任意 IP 的客户端连接。
docker -H 192.168.47.134 info
docker system df //硬盘占用