容器时代,不掌学点基本功怎么行?
但是,咱也不是专业运维,所以光学过不行,会忘。得记一笔。
而且,由于一些不可描述的原因,只要是涉及到互联网肯定会有一些坑。
安装Docker-CE
CentOS
1 2 3 4 5 6 7 8 9
| # 删除旧版(可选) sudo yum remove docker docker-common docker-selinux docker-engine # 安装一些依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 下载repo文件(阿里云) sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安装 sudo yum makecache fast sudo yum install docker-ce
|
无需将用户添加到docker用户组
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 查找 docker 组,确认其是否存在 cat /etc/group | grep docker # 列出自己的用户组,确认自己在不在 docker 组中 groups
# 如果 docker 组不存在,则添加之: sudo groupadd docker
# 将当前用户添加到 docker 组 sudo gpasswd -a ${USER} docker
# 重启服务 sudo service docker restart
|
安装Docker-Compose
1 2
| sudo curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
|
常用命令
1 2 3 4 5 6 7 8 9 10
| # 构建(更新)并启动 docker-compose -f [docker-compose文件] [up] # 构建 docker-compose -f [docker-compose文件] build # 某一个服务 docker-compose -f [docker-compose文件] build [服务名称] # 运行某个服务的镜像 docker-compose run [服务名称] # 启动某个服务的容器 docker-compose start [服务名称]
|
镜像服务器和私服
/etc/docker/daemon.json
1 2 3 4 5
| { "registry-mirrors": ["<your accelerate address>"], "insecure-registries":["<private repository url>"], "dns": ["8.8.8.8","8.8.4.4"] }
|
例子
1 2 3 4
| { "registry-mirrors": ["https://registry.docker-cn.com"], "insecure-registries":["docker.example.xyz:28083"] }
|
保存私服登录凭据
1
| sudo docker login -u docr-user -p xxx docker.example.xyz:28083
|
运行参数
退出时删除容器
--rm
端口映射
-p 宿主端口:容器内端口
,端口支持批量映射
目录挂载
-v 宿主路径:容器内路径
容器连接
--link name:alias
,这里 name 是我们要连接的container的名字, alias 是一link的别名,连接后,新容器和被连接的容器的网络就互通了(容器名就是主机名)。
例子
1 2 3 4
| # WEB 应用与数据库连接 docker run -d -P --name web --link db:db training/webapp python app.py # 启动busybox容器,并和db容器连接 docker run -it --rm --name busybox1 --link db:db busybox sh
|
运维
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #进入容器 docker exec -it 容器名称 sh #查看容器详情: docker inspect 容器名称 #启动容器,覆盖`ENTRYPOINT` docker run -it --entrypoint="/bin/bash" 容器名称 # 清理无用的镜像 docker image prune # 清理无用的容器 docker container prune # 清理卷 docker volume prune # 清理全部,除了卷 docker system prune # 清理全部,除了卷 docker system prune --volumes
|
高级命令
1 2 3 4 5 6 7 8
| # 查看镜像 docker ps -a # 停止所有容器 docker stop $(docker ps -aq) # 删除所有容器 docker rm $(docker ps -aq) # 删除所有镜像 docker rmi $(docker images -q)
|