docker入门
docker安装
在 Ubuntu |上安装 Docker 引擎Docker 文档
卸载旧版本
1 2
| $ sudo apt-get remove docker docker-engine docker.io containerd runc $ apt-get autoremove -y docker docker-ce docker-engine docker.io containerd runc docker-ce-cli
|
使用存储库安装 复制就完了
更新软件包
1 2 3 4 5 6
| $ sudo apt-get update $ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
|
GPG密钥
1
| $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
验证:
1 2 3 4 5
| $ sudo apt-key fingerprint 0EBFCD88 pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S]
|
阿里云镜像
1
| $ sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
|
安装docker引擎
1 2 3 4 5 6 7
| $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 对应版本docker apt-cache madison docker-ce apt-cache madison docker-ce-cli # 选一个心动的 apt-get install docker-ce=5:20.10.24~3-0~ubuntu-focal docker-ce-cli=5:20.10.24~3-0~ubuntu-focal containerd.io docker-compose-plugin
|
验证:
docker镜像
搜索镜像(docker hub)
images查看镜像
pull下载镜像
1 2 3
| docker pull mysql:5.7 # docker pull [name]:[tag] # tag默认latest
|
rmi删除镜像
1 2 3 4
| docker rmi mysql:5.7 # docker rmi [name]:[tag] docker rmi 9384bbce10b2 #docker rmi [image]
|
stats查看docker进程
tag
1
| docker tag [image] [新image]
|
save保存为tar
1
| docker save -o [路径/name.tar] [images]
|
load加载打包的镜像
1
| docker load -i [name.tar]
|
docker容器
ps查看容器
1 2 3 4 5
| docker ps # 查看运行容器 # docker ps [options] option: -a # 所有容器(默认是正在运行的容器) -q # 只显示id
|
run运行容器
1 2 3 4 5 6 7 8 9 10 11 12
| docker run -it -p 80:80 --name nginx01 nginx /bin/bash #docker run [options] [image] [command] option: -it # 交互方式运行 -d # 后台 -p # 端口 -p [本机端口]:[容器端口] -p [本机容器同端口] -P # 随机端口 --name [name] # 容器名 -v [本机路径]:[容器路径] # 挂载数据卷 -network [name] # 自定义网络
|
进入容器
attach进入
1 2
| docker attach nginx01 # exit后容器关闭,ctrl+p+q后容器依旧运行 # docker attach [container]
|
exec进入
1 2 3 4
| docker exec -it nginx01 /bin/bash # exit后容器依旧运行 # dockr exec [options] [container] [command] option: -it # 交互方式进入
|
退出容器
容器状态操作
start启动关闭的容器
1
| docker start [container]
|
restart重启容器
1
| docker restart [container]
|
关闭容器
1 2
| docker stop [container] # 关闭 docker kill [container] # 强制关闭
|
rm删除容器
1 2
| docker rm [container] docker rm -f [container] # 不关闭强制删除
|
logs查看容器日志
1 2 3
| docker logs -tf --tail 25 nginx01 # docker logs [options] [container] # 照着写就完了
|
top查看容器内进程(command)
inspect查看容器信息
1
| docker inspect [container]
|
cp拷贝文件到宿主机
1 2
| docker cp a330bcd500d2:/home/hello.txt /home # docker cp [container]:[容器路径] [宿主机路径]
|
commit提交镜像(快照)
1 2 3 4
| # docker commit [options] [container] [新image名字] option: -m 描述 -a 作者
|
Dockerfile
基本指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| FORM [image] # 基础镜像 MAINTAINER [作者名+邮箱] RUN [command] # 构建时运行 ADD [包名] [容器内路径] # 自动解压 WORKDIR [路径] # 工作目录 VOLUME [匿名] # 数据卷 # VOLUME ["volume01","volume02"] EXPOSE [端口] CMD [command] # 容器启动时运行 ENTRYPOINT [command] # 同CMD但可追加 ONBIULD # 我不会 COPY [本机路径] [容器路径] ENV [name] [路径] # ENV JAVA_HOME /usr/local/java # ENV PATH $PATH:$JAVA_HOME/bin
|
biuld
1 2 3 4 5 6
| docker biuld -f dockerfile01 -t nginx01 . docker biuld [options] . option: -f dockerfile名字(默认Dockerfile) -t 新images名字 . 当前目录
|
docker hub
login登录
1
| dockeer login -u [name] -p [password]
|
push上传
docker网络
network查看网络
create创建网络
1 2 3 4 5 6
| docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet # docker network create [options] [name] options: --driver bridge # 桥接 --subnet 192.168.0.0/16 # 子网 --gateway 192.168.0.1 # 默认网关
|
connect容器连接网络
1
| docker network connect [mynet] [container]
|