Docker 安装创建
Docker安裝要求
需要64位操作系統
至少要RHEL6.5以上版本
關閉Firewall
創建Docker的yum源
docker-engine-1.12.1-1.el7.centos.x86_64.rpm
docker-engine-selinux-1.12.1-1.el7.centos.noarch.rpm
createrepo .
vi gzqstca.repo
[docker]
name=docker
baseurl=ftp://...***
enabled=1
gpgcheck=0
yum search docker
yum -y install docker-engine
systemctl enable docker
systemctl start docker
采用后端存儲 cow copy of write
ifconfig 查看
docker images 查看當前機器有的鏡像
Docker hub 鏡像倉庫
http://hub.docker.com
Docker官方提供公共鏡像的倉庫(Registry)
docker search rhel7
docker search centos
docker search nginx
docker search mysql
docker pull 下載
docker push 上傳
docker search busybox
docker pull busybox
例:
docdocker help push
導入鏡像
docker load < ***.tar
docker imagers
導出鏡像
docker images
docker save image_name > ***.tar
docker save busybox(名稱):***(唯一的tag name) > busybox.tar
scp busybox.tar docker2:./
docker2 ~]# docker load < busybox.tar
lftp 192.168.1.254
ls
cd public/
get docker_images.zip
bye
unzip docker_images.zip
cd docker_images
for i in *
do
docker load < $i
done
啟動鏡像
啟動centos鏡像生成一個容器
docker images
docker run -it centos bash
開啟另一個終端(查看容器信息)
docker ps
創建啟動窗口的命令
docker run -it 鏡像的名稱:鏡像的標簽 [啟動命令]
latest是默認標簽
docker run -it centos:latest cmd
等同 docker run -it centos cmd
查看詳細信息
docker inspect 鏡像的名稱:鏡像的標簽
cat >/etc/yum.repos.d/centos.repo <<EOF
[centos]
name=centos
baseurl=ftp://192.168.1.254/centos
enabled=1
gpgcheck=0
EOF
docker run -it centos (默認命令 /bin/bash)
1 容器退出以后,我怎么能進入原來的容器
容器在我們退出以后就關閉了,如果想進入原來的容器需要重新啟動那個容器
2 為什么有的容器不加啟動命令就起不來
因為是啟動容器是默認命令是非交互命令
3 啟動參數 -it 是干什么用的?
-i 是表示交互式
-t 是表示終端
-d 后臺進程
4 redis 系統為什么是空的?
不是空的
5 怎么查看系統中有幾個容器
在另一個終端查看
6 怎么管理這些容器
用docker 相關命令
debian VS redhat
dpkg rpm
apt-get yum
鏡像的常用命令
docker images
docker history
docker inspect 查看鏡像底層信息
docker pull
docker push
docker rmi 刪除本地鏡像
docker save
docker load
docker search
docker tag 修改鏡像名稱和標簽
例:docker tag 8c811b1b434e(IMAGE ID) nsd1802:latest
docker tag nsd1802:latest aabb:v1
命令列表
docker run 運行容器
docker ps 查看容器列表 例:docker ps -a;docker ps -aq查看所有開啟未開啟的容器
docker stop 關閉容器
docker start 啟動容器
docker restart 重啟容器
docker attach|exec 進入容器
例:docker exec -it de4422d8f28d /bin/bash
docker attach de4422d8f28d (不用跟交互命令,如果該容器是后臺運行,就掛那不動了,退出
后容器會被關閉退出,后期進入必需先docker start de4422d8f28d,處理的辦法ctrl長按,按下p,在
按下q將容器放至后臺)
ctrl+z 將當前執行任務放置后臺,并且暫停
bg 將一個在后臺暫停的命令,變成繼續執行
fg 將后臺中的命令調至前臺繼續運行
jobs 查看當前有多少在后臺運行的命令
rpm -ql docker-engine 軟件包列表信息
rpm -qi docker-engine 軟件包信息
rpm -qc docker-engine 軟件包配置信息
docker inspect 查看容器底層信息
docker top 查看容器進程列表
docker rm 刪除容器 例:docker rm 4156a9a56274
docker rm $(docker ps -aq) 支持函數重入
刪除容器前,容器必需是停止的狀態
ss -ltun 查看正在使用的端口
docker run -p 物理機端口:容器端口(綁定)
例:docker run -d -p 80:80 nginx
修改nginx的默認主頁
docker ps 查看nginx的容器ID號
docker exec -it 04190a427b25 /bin/bash
nginx -h 查看nginx的幫助信息
nginx -T 查看nginx的配置信息,并且輸出
cd /usr/share/nginx/html
echo "HELLO NSD1802">index.html
==========================================================================================
自定義鏡像:
docker ps -a 查看然后刪除所有的鏡像
docker run -itd centos
docker ps -a
docker exec -it 4c702686e2f /bin/bash
rm -rf /etc/yum.repos.d/*
cat > /etc/yum.repos.d/centos.repo <EOF
[centos]
name=centos
baseurl=ftp://192.168.1.254/pub/centos
enabled=1
gpgcheck=0
EOF
yum -y install net-tools vim-enhanced iproute bash-completion psmisc
exit
docker ps -a
docker commit 4c702686e2f mycentos:latest 配置完成以后,停止容器。手動把自己配置的容
器制作成鏡像
docker images
docker rm 4c 刪除之前的自己配置的原始容器
Dockerfile
-FROM:基礎鏡像
-MAINTAINER: 鏡像創建者信息
-EXPOSE: 開放的端口
-ENV: 設置變量
-ADD: 復制文件到鏡像
-RUN: 制作鏡像時執行的命令,可以有多個
-WORKDIR: 定義容器默認工作目錄
-CMD: 容器啟動時執行的命令,僅可以有一條CMD
==========================================================================================
mkdir aabb
cd aabb
vim Dockerfile
FROM mycentos:latest
RUN rm -rf /etc/yum.repos.d/* 在容器內運行命令
ADD centos.repo /etc/yum.repos.d/centos.repo centos.repo必需放在當前目錄下
RUN yum -y install net-tools vim-enhanced iproute bash-completion psmisc
docker build -t createos:latest . 創建Dockerfile文件,后面的.是指向當前目錄
例:
mkdir bbcc
cd bbcc
vim Dockerfile
FROM mycentos:latest
CMD ["/usr/bin/python"] 修改默認啟動命令
docker build -t createos:python .
==========================================================================================
history -c
history -w
例:安裝啟用ssh這個服務
docker run -itd mycentos
yum seach ssh
yum -y install openssh-server
echo "123456"|passwd --stdin root
因為docker是在linux下直接創建,所以無法使用systemctl start sshd
cd /usr/lib/systemd/system
cat sshd.service
EnvironmentFile=/etc/sysconfig/sshd 環境變量聲明
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecStart=/usr/sbin/sshd -D 會報錯
cd /etc/ssh
sshd-keygen
ExecStart=/usr/sbin/sshd -D
which sshd-keygen
/usr/sbin/sshd-keygen
history
exit
mkdir abc
cd abc
vim Dockerfile
FROM mycentos:latest
RUN yum -y install openssh-server
RUN echo "123456"|passwd --stdin root
ENV EnvironmentFile=/etc/sysconfig/sshd
RUN /usr/sbin/sshd-keygen
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
docker build -t mycentos:sshd .
docker run -d -p 1022:22 mycentos:sshd
docker run -itd mycentos
which httpd
yum -y install httpd
echo "Hello world!">/var/www/html/index.html
cat /etc/sysconfig/httpd
/usr/sbin/httpd $OPTIONS -DFOREGROUND
/usr/sbin/httpd -DFOREGROUND
history
exit
vim Dockerfile
FROM mycentos:latest
RUN yum -y install httpd
ENV EnvironmentFile=/etc/sysconfig/httpd
WORKDIR /var/www/html
RUN echo "Hello world">index.html
EXPOSE 80
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
docker build -t mycentos:httpd .
docker run -d -p 8888:22 mycentos:httpd
例:在sshd的鏡像上填加httpd
vim Dockerfiles
FROM mycentos:sshd
RUN yum -y install httpd
ENV EnvironmentFile=/etc/sysconfig/httpd
WORKDIR /var/www/html
RUN echo "Hello world!">index.html
EXPOSE 22
EXPOSE 80
ADD run.sh /etc/init.d/run.sh
CMD ["/etc/init.d/run.sh"]
vim run.sh
#!/bin/bash
/usr/sbin/sshd -D &
/usr/sbin/httpd -DFOREGROUND
chmod +x run.sh
docker build -t mycentos:sshdhttpd .
docker run -d -p 8888:80 -p 1022:22 mycentos:sshdhttpd
轉載于:https://blog.51cto.com/13845582/2163766
總結
以上是生活随笔為你收集整理的Docker 安装创建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 夏普出了款机器人手机 可以和你“坐着聊聊
- 下一篇: AIX是什么