概述
创建或启动一个容器
1. 创建一个容器
一定要加名字,这样好识别
docker run --name benjamin-ubuntu -it ubuntu:18.04 /bin/bash
- it
:表示交互式进入ubuntu:18.04
:REPOSITORY:TAG/bin/bash
:进入命令行
2. 启动一个已创建并停止了的容器
docker start -ia <CONTAINER ID >
Usage: docker start [OPTIONS] CONTAINER [CONTAINER...]
Start one or more stopped containers
Options:
-a, --attach Attach STDOUT/STDERR and forward signals
--detach-keys string Override the key sequence for detaching a container
-i, --interactive Attach container's STDIN
3. 退出容器的方式
3.1 退出即停止
Ctrl
+d
要想重新进入:docker start -ia <CONTAINER ID>
3.2 退出不停止
Ctrl
+P
+Q
:注意是大写,请注意按键顺序
进入的首选方法:docker exec <CONTAINER ID> COMMAND
即后面要跟上容器号和相关的命令
不建议的方法:docker attach <CONTAINER ID>
3. 删除一个容器
docker rm -f <CONTAINER ID>
更新镜像
首先进入对应容器做一番操作,然后退出:exit
接下来用一条查看指令:
docker ps -l 查看最近一个进程
或
docker ps -n int 查看最近几个进程
点击放大查看
接下来更新镜像,操作指令如下:
docker commit -m="add username--benjamin--" -a="bianjie" 38cc5b843cee benjamin/ubuntu:18.04-v1
-m
::提交的描述信息-a
:指定镜像作者38cc5b843cee
:容器 IDbenjamin/ubuntu:18.04-v1
: 指定要【创建的目标镜像名】和【tag】,用冒号分隔
然后可以使用 docker images
命令来查看我们的新镜像:
docker images benjamin/ubuntu # 这里加上了我们刚刚创建的镜像名,不用看别的镜像内容
镜像推送
- 在镜像commit之后,镜像push推送之前,首先需要打标签
docker tag ubuntu:18.04 username/ubuntu:18.04
说明:
- tag 后面紧跟的
ubuntu:18.04
:表示的是respository_name : tag_name
username/ubuntu:18.04
:username表示的是Docker 账号用户名或harbor账号用户名
- 然后进行推送
docker push username/ubuntu:18.04
裸版本ubuntu18.04问题解决
1. 容器内使用sudo 报bash: sudo: command not found
容器内避免使用root,建立新用户执行命令 使用sudo ,提示如下
bash: sudo: command not found
解决办法
apt-get update
apt-get install sudo
2. Ubuntu系统Tab键不能自动补全问题解决
1、利用vi编辑器打开/etc/bash.bashrc文件(需要root权限)
Shell代码
sudo vim /etc/bash.bashrc
2、找到文件中的下列代码
Shell代码
1. #enable bash completion in interactive shells
2. #if ! shopt -oq posix; then
3. # if [-f /usr/share/bash-completion/bash_completion ]; then
4. # . /usr/share/bash-completion/bash_completion
5. # elif [ -f /etc/bash_completion]; then
6. # . /etc/bash_completion
7. # fi
8. #fi
将注释符号#去掉,即改成
Shell代码
1. #enable bash completion in interactive shells
2. if ! shopt -oq posix; then
3. if [-f /usr/share/bash-completion/bash_completion ]; then
4. . /usr/share/bash-completion/bash_completion
5. elif [ -f /etc/bash_completion]; then
6. . /etc/bash_completion
7. fi
8. fi
3、最后 source一下 /etc/bash.bashrc即可, 即
shell代码,如果说sudo下没有source命令,就把sudo去掉就行了。
1. sudo source /etc/bash.bashrc
3. ubuntu系统shell中 source: not found错误
错误: shell脚本中含有source命令运行时提示 source: not found
测试:
运行ls -l /bin/sh
后显示/bin/sh -> dash
这说明是用dash来进行解析的。
解决方案:
命令行执行:dpkg-reconfigure dash
(需要root权限)
在界面中选择no
再运行ls -l /bin/sh
后显示/bin/sh -> bash
最后测试shell脚本,可以正常使用!
镜像结果记录:
使用 Jupyter连接服务
关键指令只有一条:
- 选择镜像、设置计算资源和之前都差不多,在执行命令这一栏填写下面内容来启动jupyter服务:
jupyter notebook --allow-root --no-browser --ip 0.0.0.0 --port=$PAI_CONTAINER_HOST_jupyter_PORT_LIST --NotebookApp.token="" --NotebookApp.allow_origin="*" --NotebookApp.base_url="/"
上面的命令表示启动jupyter服务:
–allow-root:以root用户启动
–no-browser:启动后不要在浏览器中打开笔记本
–ip 0.0.0.0:使用本服务器的所有ipv4地址
–port=$PAI_CONTAINER_HOST_jupyter_PORT_LIST:开放jupyter端口
–NotebookApp.token="":不为notebook设置初始口令牌
–NotebookApp.allow_origin="":允许所有地址来访问jupyter。(Use '’ to allow any origin to access your server.)
–NotebookApp.base_url="/":不设置URL
- 然后在下方添加一个容器映射端口:
3.启动任务后会有一个ip和jupyter端口号,在浏览器输入即可进行访问。
最后
以上就是暴躁盼望为你收集整理的docker用法零散记录的全部内容,希望文章能够帮你解决docker用法零散记录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复