docker && dockerfile

# docker

 

一、簡介

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

 

 二、安裝

 

# Centos 7
yum install -y docker
 
#啓動
/etc/init.d/docker start

 

 

三、日常操作

#a、下載鏡像
docker pull centos
#b、查看本地鏡像
docker images
# 從docker倉庫搜索docker鏡像
docker search centos
# 啓動一個容器
docker run -it centos /bin/bash
#退出容器,關閉容器
exit
# 退出容器,不關閉
Ctrl+d
# 查看正在運行的容器,-a 停止的容器也顯示
docker ps -a 
# 停止容易
docker stop 容器id
# 登錄一個容器
docker exec -it 容器id /bin/bash
# 刪除一個容器
docker rm 容器id
# 保存一個容器鏡像
docker commit -m "說明信息" -a '作者信息' 容器id gary234:latest
 
# 創建容器直接啓動 
docker run -itd centos bash
下載鏡像地址
http://download.openvz.org/template/precreated/centos-6-x86_64.tar.gz

 

 

 四、磁盤數據管理

-- 特別注意要關閉selinux權限,不然沒有權限修改目錄,

啓動一個容器,掛載機器的目錄到Docker容器的一個目錄中

 

docker run -itd -v /data/:/data/ centos bash

 

在啓動一個容器,共享上一個docker容器的目錄,實現兩臺docker容器數據共享

 

docker run -itd --volumes-from big_shirley centos bash
# big_shirley容器名稱,最後一個字段
# centos 鏡像名

 

 

五、將物體機器端口映射到docker容器

 

docker run -p 5123:80 -itd gary_centos bash
# 多端口映射
docker run -itd -p 123-155:123:155 gary_centos bash

 

 

六、備份容器和鏡像

備份鏡像

 

docker save -o mysql.tar mysql
# mysql.tar 保存的文件
# mysql 鏡像名稱

 

導出容器

 

docker export 7e8a0dc1cb88 > mysql.tar

 

恢復鏡像

 

cat mysql.tar | docker import - mysql:latest

 

 

七、docker橋接網絡( 橋接操作會斷開暫時端口網絡,建議寫成腳本 運行 或者 在虛擬機內操作)

7.1 Centos 7

 

 

# 停止docker服務器
systemctl stop docker
# 使用ifconfig查看docker是否有網卡,如果有網卡就先刪除
ip link set dev docker0 down
brctl delbr docker0
## brctl要安裝
# 新建橋接虛擬網卡br0
brctl addbr br0
ip link set dev br0 up
ip addr add 192.168.1.210/24 dev br0 #爲br0分配宿主機的ip地址
ip addr del 192.168.184.123/24 dev ens0 #清空宿主機的Ip地址
brctl addif br0 ens0 # 將宿主機網卡掛到br0上
ip route add default via 192.168.1.1 dev br0 #爲br0設置路由
# 修改docker配置文件,Centos7的在/etc/sysconfig/docker,其他服務器到這個網址找 https://docs.docker.com/installation/#installation
 
vim /etc/sysconfig/docker 
#在OPTIONS='--selinux-enabled'這行中修改爲OPTIONS='--selinux-enabled -b=br0'即讓docker服務啓動時使用br0網卡進行橋接
 
#啓動docker
systemctl start docker
# 下載 pipework 命令,進行橋接
git clone https://github.com/jpetazzo/pipework
cp pipework/pipework /usr/local/bin/
# 啓動一個無網絡的docker容器
docker run -itd --net=none --name=gar123 centos bash
# 橋接 192.168.1.211 容器IP,192.168.1.210 宿主機IP
pipework br0 gar123 192.168.1.211/[email protected]
### 到這裏也就完成了容器橋接,可以通過其他機器直接訪問docker容器
 
# 安裝sshd服務
## 安裝軟件
yum -y install openssh-server
## 生成啓動sshd服務器需要的密鑰文件
ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_ed25519_key
## 啓動sshd服務器
/usr/sbin/sshd

 

重要:dockerfile創建redis容器

##############
# DockerFile
##############
from centos
MAINTAINER gary [email protected]
RUN yum install -y  gcc make openssl-devel automake make
ADD redis /opt/soft/redis
WORKDIR /opt/soft/redis
RUN tar xvzf redis-3.2.8.tar.gz 
WORKDIR redis-3.2.8
# 安裝redis
RUN make
#RUN make PREFIX=/usr/local/redis install
RUN make install
RUN cp redis.conf /etc/
RUN sed -i 's/daemonize no/daemonize yes/g' /etc/redis.conf
EXPOSE 6379
ENTRYPOINT ["redis-server"]
#CMD "/usr/local/redis/bin/redis-server" "/etc/redis.conf"

 運行dockerfile

docker build -t gary_centos /usr/local/sbin/docker/

 啓動容器

docker run -d -p 3004:6379 hp --bind 0.0.0.0

 

發佈了115 篇原創文章 · 獲贊 78 · 訪問量 75萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章