Docker容器技術

三大塊(管理):
鏡像
容器
鏡像倉庫

1.環境準備:

1-安裝docker安裝包  其實就是在cd /etc/yum.repo.d/  下配置yun源
curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo # 若是沒yun源配好,先清空yun源文件夾下的全部源,清空(rm -rf *),和上面那條一塊兒執行
wget
-O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2-安裝依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
3-查看docker版本狀況
yum list docker-ce.x86_64 --showduplicates | sort -r
4-安裝了兩個安裝包(一個是docker,另外一個是他的核心),選擇17.03.2版本比較穩定
yum install -y --setopt=obsoletes=0 \ docker-ce-17.03.2.ce-1.el7.centos.x86_64 \ docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
# reload是重載一下,沒改配置文件能夠不作
systemctl daemon-reload
# 啓動docker 用start也行 systemctl restart docker # 查看docker版本 docker version docker info

2.配置鏡像加速

阿里雲Docker-hublinux

https://cr.console.aliyun.com/cn-hangzhou/mirrorsnginx

# 先建立配置文件目錄
mkdir -p /etc/docker
# 在執行下面語句
tee /etc/docker/daemon.json <<-'EOF'
{
   "registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"]
}
EOF                
或者:
vim /etc/docker/daemon.json
    {
         "registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"]
    }

配置完後在重啓一下docker: systemctl restart docker

3.常管管理

3.1獲取鏡像:docker

# 查詢軟件 後面跟軟件名
docker search centos
# 下載基礎操做系統鏡像
docker pull centos:6.9 docker pull centos:7.5.1804
#
docker pull nginx

3.2查詢鏡像json

# 查看下載好的鏡像
docker images
# 查看docker的id docker images
-q
# 顯示鏡像的詳細說明 docker inspect ID
/name:tag

# 啓動鏡像中的centos
docker run -it centos:6.9
# 查看啓動鏡像的版本
cat /etc/redhat-release

3.3刪除鏡像vim

# 刪除單個鏡像
docker rmi ID
# 刪除所有鏡像 docker rmi `docker images
-q` docker rmi $(docker images -q)

3.4導入導出鏡像centos

# 導出下載好的鏡像重定向到指定文件夾下
[root@docker ~]# docker image save nginx >/opt/nginx.tar.gz
# 導入某個鏡像
[root@docker ~]# docker image load -i /opt/nginx.tar.gz

3.5啓動容器並獲取鏡像app

# 基於httpd起一個容器,先到本地找,若是沒有就自動下載
[root@docker ~]# docker run -d -p 80:80 httpd [root@docker ~]# docker ps -a [root@docker ~]# docker images

4.docker一步一步學習製做鏡像

語法:
第一個鏡像建立:ssh

docker ps -a 
docker commit xxxxxx oldguo/wordpress:v1
docker images 

製做鏡像: centos7.5+vim+net-tools+iproute+sshd(基於centos7.5具備後面內容功能)curl

1.啓動容器:wordpress

docker run -it --name "centos7.5" 76d6bc25b8a5

2.優化yum源

mv /etc/yum.repos.d/*.repo /tmp
echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=0">/etc/yum.repos.d/ftp.repo

 

3.安裝必須軟件包

yum install -y vim net-tools  iproute   openssh-*   -y

4.啓動SSHD

 mkdir /var/run/sshd
 echo 'UseDNS no' >> /etc/ssh/sshd_config
 sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
 echo 'root:123456' | chpasswd
 /usr/bin/ssh-keygen -A
 /usr/sbin/sshd -D 

注意: 以上操做作完以後,會一直不退出,須要用如下命令退回到宿主機,並不關閉容器
ctrl p q  (這個命令在終端看不見)

5.製做鏡像

docker commit centos7.5 oldguo/centos7_sshd:v2

 5.使用dockerfile製做鏡像(更加簡便和減小操做)

必須依賴優化過的yum源,不然會報錯並中止:

## Centos7.5
[root@docker sshd]# vim  dockerfile 
$ 阿里雲的不用優化yum源,兩行
FROM centos:7.5.1804 # 鏡像基於這個容器 RUN mv /etc/yum.repos.d/*.repo /tmp RUN echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=0">/etc/yum.repos.d/ftp.repo RUN yum install -y openssh-server RUN yum install -y openssh-clients RUN yum install net-tools* -y RUN yum install iproute-* -y RUN mkdir /var/run/sshd RUN echo 'UseDNS no' >> /etc/ssh/sshd_config RUN sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd RUN echo 'root:123456' | chpasswd RUN /usr/bin/ssh-keygen -A EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
# 構建一個鏡像到指定文件夾下 docker build
-t "oldguo/centos7_sshd:v3" /opt/dockerfile
相關文章
相關標籤/搜索