# docker.learning **Repository Path**: alxor/docker.learning ## Basic Information - **Project Name**: docker.learning - **Description**: 容器docker使用学习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-21 - **Last Updated**: 2022-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 容器安装 ```bash sudo apt-get install docker ``` ```bash docker version ``` ## 容器拉取 ```bash docker pull ubuntu ``` ```bash docker run -i -t ubuntu /bin/bash ``` ## 进入容器 ```bash docker start 容器ID docker exec -it 容器ID /bin/bash docker attach 容器ID ``` ## 配置容器内环境 在容器里输入 ``` apt-get install python3.6 ``` ``` apt-get update ``` ```bash apt-get install python3-pip python3.6 -m pip install flask 安装flask ``` ## 退出容器 ```bash exit ``` ## 查看容器 ```bash docker ps -a ``` ## 向容器内拷贝文件 ```bash docker cp <宿主机的路径> <容器ID(名)>:<容器内路径> ``` ## 创建新镜像 ### 语法 ```json docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] ``` ### OPTIONS说明: - **-a :**提交的镜像作者; - **-c :**使用Dockerfile指令来创建镜像; - **-m :**提交时的说明文字; - **-p :**在commit时,将容器暂停。 ### 实例 将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。 ```bash runoob@runoob:~$ docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1 sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057 runoob@runoob:~$ docker images mymysql:v1 REPOSITORY TAG IMAGE ID CREATED SIZE mymysql v1 37af1236adef 15 seconds ago 329 MB ``` ## 容器空间挂载配置 ```bash docker run -p 宿主机的端口:容器端口 镜像名 command ``` ## 容器保存 ** **将指定镜像保存成 tar 归档文件 ### 语法 ```bash docker save [OPTIONS] IMAGE [IMAGE...] ``` ### OPTIONS 说明: - **-o :**输出到的文件。 ### 实例 将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档 ```bash runoob@runoob:~$ docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3 runoob@runoob:~$ ll my_ubuntu_v3.tar -rw------- 1 runoob runoob 142102016 Jul 11 01:37 my_ubuntu_v3.ta ``` ## 容器提取 导入使用 [容器保存]([https://rises-tech.yuque.com/dashboard/notes#BZUiY](#BZUiY)) 命令导出的镜像。 ### 语法 ```bash docker load [OPTIONS] ``` ### option说明 - **--input , -i : **指定导入的文件,代替 STDIN。 - **--quiet , -q : **精简输出信息。 ### 实例 ```bash $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE $ docker load < busybox.tar.gz Loaded image: busybox:latest $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 769b9341d937 7 weeks ago 2.489 MB $ docker load --input fedora.tar Loaded image: fedora:rawhide Loaded image: fedora:20 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 769b9341d937 7 weeks ago 2.489 MB fedora rawhide 0d20aec6529d 7 weeks ago 387 MB fedora 20 58394af37342 7 weeks ago 385.5 MB fedora heisenbug 58394af37342 7 weeks ago 385.5 MB fedora latest 58394af37342 7 weeks ago 385.5 MB ``` ## 容器日志 12、对于容器日志问题,可以使用docker logs命令 参考https://blog.csdn.net/sinat_32023305/article/details/94394889 ``` 该日志可以整合到syslog中,参考https://www.jianshu.com/p/d8a80f6c92d9 ``` 13、对于容器网络结构,可以参考https://blog.csdn.net/u010739551/article/details/80416617