Docker的简单使用
Docker
介紹
Docker的英文本意是“搬運(yùn)工”,Docker搬運(yùn)的是集裝箱(Container)可以成為容器,我們可以把WEB應(yīng)用以及依賴庫打包進(jìn)一個(gè)可移植的容器里傳播,解決了應(yīng)用部署的平臺兼容性問題,同時(shí)她也是一種輕量級的虛擬化技術(shù)可以做到秒級啟動一個(gè)容器(類似小虛擬機(jī),區(qū)別啟動快、可以傳播);
鏡像是docker 創(chuàng)建、啟動一個(gè)容器的文件系統(tǒng),這個(gè)文件系統(tǒng)包含依賴包、命令工具、APP等;
安裝和開啟服務(wù)
yum install epel-release -y # 如果沒有擴(kuò)展源,需要先安裝擴(kuò)展源 yum install docker # 安裝,由于Docker要求Linux內(nèi)核版本必須在要在3.10,所以centos6.X版本需要 yum install docker-io systemctl start docker.service # 開啟服務(wù) docker info # 查看docker信息鏡像
修改鏡像源
默認(rèn)源連不上,修改鏡像下載源,加入以下內(nèi)容
vim etc/docker/daemon.json { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }更多國內(nèi)源如下:
# Docker 官方中國區(qū) https://registry.docker-cn.com # 網(wǎng)易 http://hub-mirror.c.163.com # ustc https://docker.mirrors.ustc.edu.cn注意:docker版本在1.12以下需要找到docker配置文件
目錄位置為/etc/default/docker,如果沒有,那么就在/etc/sysconfig/docker,如果還是沒有,那么就去/etc/default/下創(chuàng)建一個(gè)docker文件吧。
搜索鏡像文件
docker search centos # 搜索centos拉取鏡像
docker pull docker.io/centos # 拉取 鏡像名刪除鏡像
docker rmi <鏡像名|鏡像ID>容器
創(chuàng)建容器
進(jìn)入交互式容器
docker run -i -t docker.io/centos /bin/bash # -it可以連寫- docker run 創(chuàng)建容器
- -t 指定鏡像
- -i 交互式
進(jìn)入交互式容器的/bin/bash后,可以輸入常用的操作命令,比如ls
指定容器名
docker run --name <容器名> -it <鏡像名> /bin/bash # --name 指定容器名端口映射
# 使用 -p 8000:80 創(chuàng)建端口映射(映射docker的80端口到物理機(jī)8000) # docker run -d -p 8000:80 -p 22:22 同時(shí)映射多個(gè)端口,比如22給ssh服務(wù)用,80給Django用,即凡是需要提供給外部訪問的,都需要作端口映射。 docker run --name ssh_server -it -p 8000:80 <鏡像名> /bin/bash注意:端口映射只能在docker run時(shí)操作
通過exit可以退出容器。
查看容器
docker ps # 正在運(yùn)行的容器 docker ps -a # 所有的容器 docker ps -l # 最近一次的容器 docker ps -q # 最近一次的容器的id查看容器詳細(xì)信息
docker inspect <容器ID|容器名>結(jié)果類似于json數(shù)據(jù),可以通過| grep來過濾需要的信息
啟動和關(guān)閉容器
docker start <容器名|容器ID> docker stop <容器名|容器ID>進(jìn)入容器
進(jìn)入容器前需要先啟動
# 這種方式可以進(jìn)入正在運(yùn)行的容器,但是exit退出時(shí)容器也就停止運(yùn)行了 docker attach <容器名|容器ID> # 另一種方式進(jìn)入容器,退出時(shí)容器不終止運(yùn)行 docker exec -it test1 /bin/bash # /bin/bash必須加刪除容器
# 刪除一個(gè)容器 docker rm <容器名|容器ID> # 強(qiáng)制刪除一個(gè)正在運(yùn)行的容器 docker rm -f <容器名|容器ID> # 刪除全部容器(使用 -f 可以強(qiáng)制刪除正在運(yùn)行的容器) docker rm `docker ps -aq`說明:飄號內(nèi)的內(nèi)容會作為命令來執(zhí)行,并將結(jié)果交給rm命令
容器打包成鏡像
docker save -o <導(dǎo)出的文件名.zip> <鏡像名> # 如果要指定路徑,必須先創(chuàng)建路徑中的文件夾# 比如: mkdir img docker save -o /img/vimenv.zip vimenv.img導(dǎo)入鏡像
docker load < <鏡像文件名.zip> # < 記住別漏了重定向符號- 導(dǎo)入之后使用docker images查看鏡像
- 使用導(dǎo)入的鏡像docker run來創(chuàng)建容器
- 新的容器內(nèi)含以前打包好的項(xiàng)目的數(shù)據(jù),直接運(yùn)行
docker中使用systemctl命令
centos7中通過systemctl啟動服務(wù),但是在docker中無法使用。解決方案:
1.啟動參數(shù)參數(shù)用/usr/sbin/init
docker run --name ssh_server -p 8000:22 -p 80:80 -it vimenv.img /usr/sbin/init這時(shí)會報(bào)錯(cuò):Operation not permitted,不管它
2新開一個(gè)終端,docker ps查看剛剛啟動的那個(gè)容器,docker stop 容器ID結(jié)束它
3重新啟動容器 docker start
4運(yùn)行容器
docker exec -it <容器ID|容器名> /bin/bash5yum安裝openssh-server等需要的服務(wù),然后就可以通過systemctl啟動服務(wù)了
通過端口映射訪問docker
- exec進(jìn)入容器,passwd命令修改密碼
- Xshell或WinSCP軟件連接宿主機(jī)ip,端口是創(chuàng)建容器時(shí)映射的端口,輸入密碼即可。
總結(jié)
以上是生活随笔為你收集整理的Docker的简单使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入解析浅复制和深复制
- 下一篇: 应用DOM操作文档的一个实用例子