# 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