Docker安装、基础命令

Docker三大核心:镜像、容器、仓库

Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中。可以理解为一个软件一个容器,这个容器不依赖本地的环境,而Docker相当于管理这些容器的一个平台或软件。

如果有旧版Docker需移除

sudo yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine

安装yum-utils包并设置稳定存储库

yum install -y yum-utils

Yum安装Docker

# 一般都有docker-ce的包
yum -y install docker-ce docker-ce-cli containerd.io

如果报错提示No package docker-ce available就看下面这篇文章

Docker基础命令

启动        

systemctl start docker

守护进程重启  

sudo systemctl daemon-reload

重启docker服务

systemctl restart  docker

重启docker服务

sudo service docker restart

关闭docker 

service docker stop  

关闭docker 

systemctl stop docker

Docker命令

# 查看正在运行的容器
docker ps
# 查看所有容器,包含被停止的
docker ps -a 
# 查看本地仓库的镜像
docker images
# 启动容器,-p *:*为需要映射的端口,后面接images名称 
docker run -d -p *:* *        
-v *:*        #映射容器内的目录至本地目录
# 在启动容器时候加入--restart 参数自动启动容器
docker run --restart always                        
no 不自动重启容器. (默认值) 
on-failure 容器发生error而退出(容器退出状态不为0)重启容器,可以指定重启的最大次数,如:on-failure:10 
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器 
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器,手动stop的不算
                    
# 进入正在运行的容器,后面容器ID
docker exec -it ID /bin/bash                
# 进入正在运行的容器后拷贝容器内文件 容器ID:镜像路径 本地路径 
docker cp *:/home /home/test          
# 将本地文件拷贝至容器内 本地路径 容器ID:镜像路径
docker cp /home/test *:/home      
# 备份正在运行的容器,后面接备份名称
docker commit -p ID *
# 拷贝images里的镜像至本地,前面是镜像ID,后面是cp后的名字
docker save * > *
# 恢复备份至本地的镜像,后面接镜像地址
docker load < *               
# 给正在运行的容器更新重启配置,--restart搭配后面的参数使用
docker update --restart no *  

Dockerfile:docker自定义镜像时需要用到的一个配置文件,用户自己创建,该文件所在目录无所谓。 文件头部一般是FROM 后面紧跟着的是镜像所调用的系统,或者说是封装的系统。 大致意思是Dockerfile相当于一个系统在封装时所需要的必要的文件,里面包含了你所需要用到的命令。

搭建Squid案例

# 安装Docker是必要的
yum -y install docker
# 因为Squid只能在centos上运行,所以我们调用Centos7作为系统。
docker pull centos:7
# 创建Dockerfile
vim Dockerfile
# 填写以下内容
# FROM 引用系统、COPY将Dockerfile文件当前目录的start.sh脚本复制到镜像的根目录、RUN 表示运行的命令、EXPOSE 表示要映射的端口、CMD表示将要运行的命令,CMD参数只能有一条。
FROM centos:7
COPY ./start.sh /start.sh
RUN yum -y install squid httpd-tools && \
        yum clean all && \
        rm -rf /etc/squid  && \
        rm -rf /home/*
EXPOSE 8889
CMD ["sh","/start.sh"]
------------------------------------------------------------------------------
# 封装系统,-t 后面接的是name,.代表当面目录
docker build -t Squid:v1 .
# start.sh,因为docker镜像必须要有一个守护进程,用了一个脚本文件做到一个每隔180秒输出 "squid is runing...",ps -ef|grep squid检测到没有squid的进程则 /usr/sbin/squid重启服务。
#/bin/bash
squid -z
/usr/sbin/squid
while true;do
        count=`ps -ef|grep squid|grep -v grep`
        if [ "$?" != "0" ];then
echo    "no squid,run it"
/usr/sbin/squid
else
echo "squid is runing..."
fi
sleep 180
done
Docker安装、基础命令

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇