系統(tǒng)運維
使用centos在線安裝:
yum? install? epel-release? ##安裝epel源,需要開啟centos的yum源
yum? install? docker? -y? ##同時安裝docker-cli客戶端
setenforce? 0 ##設(shè)置selinux為disable并重啟
systemctl? start? docker
?
官方最新ce版安裝:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo? ##官方repo源獲取
(阿里云源安裝:wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo)
yum list docker-ce –showduplicates | sort -r? ##查看版本
yum install docker-ce-<version_string> docker-ce-cli-<version_string> containerd.io
docker –version ##測試是否安裝成功
?
(版本升級刪除舊版本:yum? remove? docker? docker-common? docker-selinux? docker-engine)
?
docker加速配置:
前提:方式不可同時使用、配置完成需要重啟daemon
?
方式一:
mkdir /etc/docker
cat > /etc/docker/daemon.json << eof
{
? registry-mirrors: [https:/jzngeu7d.mirror.aliyuncs.com]
}
eof
方式二:
vim? /etc/sysconfig/docker
options=\\\’–selinux-enabled –log-driver=journald –signature-verification=false –registry-mirror=http://hub-mirror.c.163.com \\\’
if [ -z ${docker_cert_path} ]; then
? docker_cert_path=/etc/docker
fi
?
查看鏡像:docker? images == docker? image? ls
docker? image? build ##
docker? image? history ##
docker? image? inspect? ##查看鏡像屬性信息
docker? image? pull/push? nginx:1.11 ##拉去和推送指定版本鏡像
docker? image? rm? nginx ==? docker? rmi? nginx
docker? image? save、tag、load、import、 ##image可省略
?
查看信息:docker? info? ##使用docker? –help查看可使用命令
鏡像重新標記:docker ?tag ?621d57f27e93 ?test:1.0
下載鏡像:docker? pull? hub.c.163.com/library/mysql:latest? ##阿里云提供鏡像加速器:cr.console.aliyun.com
上傳鏡像:docker? push?
保存鏡像:docker? save? mysql:5.6.34? >? /opt/mysql-5.6.34.tar.gz
加載鏡像:docker? load ?<? /opt/mysql-5.6.34.tar.gz
導出鏡像:docker? image? export? 容器id? >? xxx.tar(導出容器文件系統(tǒng)到tar歸檔文件)
導出鏡像:docker? image? import? xxx.tar? test:latest(導入容器文件系統(tǒng)tar歸檔來創(chuàng)建鏡像)
查看容器:docker? ps ##-a 查看所有,-aq查看id,殺死容器docker? rm? -f? id
?
運行容器:(需要每個容器必要的參數(shù)指定)
docker? run? –restart=always? –name=db? -dit ?-p? 3306:3306?
-e? mysql_root_password=redhat? -e? mysql_database=數(shù)據(jù)庫名? hub.c.163.com/library/mysql
docker? run? -p? 3306:3306? mysql:5.6.34 ##指定容器中鏡像版本來啟動,如果未指定則會到鏡像服務器中下載
?
docker? container? run:(其中container可以省略)
-p:作端口映射
-d:后臺運行
-v? 宿主機目錄:容器目錄? :宿主機目錄映射到容器,可用于做數(shù)據(jù)庫的數(shù)據(jù)保存
-it:交互式分配tty
-e:添加變量,格式“-e? y=abc”
?
–name:在容器中命名
–ip? string:設(shè)置容器ip,只能用于自定義網(wǎng)絡(luò)
–restart=always:當容器退出時重啟,默認為no
–add-host? list:添加其他主機到容器中/etc/hosts
–dns? list:設(shè)置dns服務器
–mount? mount:掛載宿主機分區(qū)到容器
–memory:容器可以使用最大內(nèi)存量,-m
–memory-swap:允許使用交換內(nèi)存量
–memory-swappiness=<0-100>:容器使用swap分區(qū)的百分比,默認為-1
–oom-kill-disable:當宿主機內(nèi)存不足時,內(nèi)核會殺死容器中的進程,建議使用-m參數(shù)之后再使用此參數(shù)
–cpus:限制容器使用cpu資源
–cpuset-cpus:限制容器使用特定cpu
?
docker? start? container_id1,container_id2……
docker? stop? ……
docker? restart? ……
docker? top? container_id? ##查看指定容器中的進程
docker? stats? container_id:查看資源使用情況
docker? port? container_id:查看端口映射
docker? update? [options]? container_id:在線調(diào)整內(nèi)存、cpu限制(-c、-m)
?
docker? inspect? 容器id ##查看所有屬性
docker? cp? 宿主機目錄? 容器名:/目錄? ##實現(xiàn)文件復制,也可反過來復制
docker? exec? 容器id? ip? a? ##查看分配的ip
docker? exec? -it? 容器id? bash? ?##-it分配終端,之后運行bash命令,之后輸入的命令是在容器中輸入和輸出的
docker? container? attach? 容器id ##進入容器系統(tǒng),退出使用“ctrl p q”
?
docker? commit? 容器名? 鏡像名:tag? ##將改變的數(shù)據(jù)保存并重新生成新的鏡像,實現(xiàn)數(shù)據(jù)持久化(重啟、刪除數(shù)據(jù)都不會丟失)?
docker? logs? 容器id? ##查看日志,容器id使用“docker ps”查看
?
docker? rm? -fv? 容器id? ##刪除容器,也可tag、短id
docker ?rm ?$(docker ps -qa)? ##批量刪除容器
docker rmi -f? repository:tag(或者鏡像id) ##刪除鏡像
?
docker主機數(shù)據(jù)掛載到容器:
①? volumes:docker管理宿主機文件系統(tǒng)的一部分(/var/lib/docker/volumes)
②? bind? mounts:可以存儲在宿主機系統(tǒng)的任意位置
③? tmpfs:掛載存儲在宿主機系統(tǒng)的內(nèi)存中,而不會寫入宿主機的文件系統(tǒng)
docker網(wǎng)絡(luò)管理:<